mirror of
https://github.com/rvtr/ctr_mcu.git
synced 2025-06-18 16:45:33 -04:00
歩数レジスタのインクリメントをアトミック処理にした。
歩数計算に使う加速度データの読み出しをアトミックにした。 git-svn-id: file:///Volumes/Transfer/gigaleak_20231201/2020-05-23%20-%20ctr.7z%20+%20svn_v1.068.zip/ctr/svn/ctr_mcu@357 013db118-44a6-b54f-8bf7-843cb86687b1
This commit is contained in:
parent
3de2b9b362
commit
e55363d036
Binary file not shown.
@ -91,9 +91,13 @@ void pedometer()
|
||||
|
||||
u8 i;
|
||||
|
||||
u16 sx16 = abs( (u16)vreg_ctr[VREG_C_ACC_XH] * 256 + vreg_ctr[VREG_C_ACC_XL] );
|
||||
u16 sy16 = abs( (u16)vreg_ctr[VREG_C_ACC_YH] * 256 + vreg_ctr[VREG_C_ACC_YL] );
|
||||
u16 sz16 = abs( (u16)vreg_ctr[VREG_C_ACC_ZH] * 256 + vreg_ctr[VREG_C_ACC_ZL] );
|
||||
u16 sx16,sy16,sz16;
|
||||
|
||||
DI();
|
||||
sx16 = abs( (u16)vreg_ctr[VREG_C_ACC_XH] * 256 + vreg_ctr[VREG_C_ACC_XL] );
|
||||
sy16 = abs( (u16)vreg_ctr[VREG_C_ACC_YH] * 256 + vreg_ctr[VREG_C_ACC_YL] );
|
||||
sz16 = abs( (u16)vreg_ctr[VREG_C_ACC_ZH] * 256 + vreg_ctr[VREG_C_ACC_ZL] );
|
||||
EI();
|
||||
|
||||
// ベクトルのノルム
|
||||
#ifdef _mcu_
|
||||
@ -281,6 +285,7 @@ void hosu_increment_if_necessary()
|
||||
}
|
||||
|
||||
// 累積の更新 //
|
||||
DI();
|
||||
if( ++vreg_ctr[ VREG_C_ACC_HOSU_L ] == 0 ) // カンストチェック
|
||||
{
|
||||
if( ++vreg_ctr[ VREG_C_ACC_HOSU_M ] == 0 )
|
||||
@ -292,6 +297,7 @@ void hosu_increment_if_necessary()
|
||||
}
|
||||
}
|
||||
}
|
||||
EI();
|
||||
}
|
||||
|
||||
|
||||
@ -347,11 +353,14 @@ void clear_hosu_hist()
|
||||
pool.vreg_c_ext.pedo_log[ hours ] = 0xFFFF;
|
||||
}
|
||||
while( hours != 0 );
|
||||
vreg_ctr[ VREG_C_ACC_HOSU_L ] = 0;
|
||||
|
||||
DI();
|
||||
vreg_ctr[ VREG_C_ACC_HOSU_L ] = 0;
|
||||
vreg_ctr[ VREG_C_ACC_HOSU_M ] = 0;
|
||||
vreg_ctr[ VREG_C_ACC_HOSU_H ] = 0;
|
||||
p_record = 0;
|
||||
pedolog_overflow = false;
|
||||
EI();
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user