EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
请教一下, lvd_che_low2dot3V这个函数是用于 检测 锂电池电压(初始时3V), 当设备中用于控制电机开关阀时,检测 电压低于2.3V时 作此时电池中的电能已耗尽,液晶屏上提示 【请换电池】 ,实测 当 电池电压3V时, 而后电机动作到达最终点时,电池电压为2.55V左右,请问此时用lvd_che_low2dot3V 这个函数测出的电压准吗?需要不需要用BGR?
! l9 W) C; r+ U请问 lvd_che_low2dot3V . j+ Y) }+ a9 f) m
int lvd_che_low2dot3V(void)/ P* U2 t* R) |' S* G- S# b
{6 J& g! U/ E3 e6 x; v
int i, c = 0;# n( {/ g6 Y c" Y9 }
M0P_SYSCTRL->PERI_CLKEN_f.VC = 1;
& q$ ~5 z/ W9 _! r1 [! y M0P_LVD->CR_f.SOURCE_SEL = 0; // VCC2 F# z3 ~- ]1 U
M0P_LVD->CR_f.VTDS = 5; // 2.3V9 w( k, B4 O$ I5 H, [
M0P_LVD->CR_f.FLTEN = 0; // no filter9 W. k W, h' |6 ^( W9 K" W. W3 K
M0P_LVD->CR_f.DEBOUNCE_TIME = 0; // filter time$ B Y. R! H/ w5 E
M0P_LVD->CR_f.HTEN = 1; // level3 r0 F- o1 O. p( b. c
M0P_LVD->CR_f.ACT = 0; // use as int
% V5 R- s! B+ l M0P_LVD->CR_f.IE = 0; // int off+ u8 U( q5 W6 E6 A' c
M0P_LVD->CR_f.LVDEN = 1; // LVD on 电池电压检测 不耗电时选择2.5V
4 ], r, v+ ?9 P: o+ C M0P_LVD->IFR_f.INTF = 0;
$ j, |$ J3 w" `# f6 ] delay_ms(2); if(M0P_LVD->IFR_f.INTF)
8 Q$ t$ i/ }3 e- \0 G {
# g) J$ H/ L, T( f, Y M0P_LVD->IFR_f.INTF = 0; for(i = 0; i < 10; i++)
# g5 {& q% q! @. d {5 m. ^% }3 r' M3 z, Q) t
delay_ms(1); if(M0P_LVD->IFR_f.INTF)+ Y2 @8 }2 \( _1 G
{
+ P: D7 j+ n% c( k7 L* o: M c++;
9 m9 _$ y6 w0 F- e8 b } M0P_LVD->IFR_f.INTF = 0;
! ?! ]3 q I9 u \) p$ _! l2 g }9 |& K @" z. |! D( j7 M1 I
} M0P_LVD->CR_f.LVDEN = 0;9 i, B1 L. g/ n7 S7 `
M0P_SYSCTRL->PERI_CLKEN_f.VC = 0;& K$ G c% s2 V1 J- i0 o" l
return c > 8;9 D) p' a7 e% k8 W2 p2 V
} ( I b. i {, O. b% h
|