EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
请教一下, lvd_che_low2dot3V这个函数是用于 检测 锂电池电压(初始时3V), 当设备中用于控制电机开关阀时,检测 电压低于2.3V时 作此时电池中的电能已耗尽,液晶屏上提示 【请换电池】 ,实测 当 电池电压3V时, 而后电机动作到达最终点时,电池电压为2.55V左右,请问此时用lvd_che_low2dot3V 这个函数测出的电压准吗?需要不需要用BGR? 8 S4 d' Y6 I( B. d' o p, Z
请问 lvd_che_low2dot3V J; J% a- F) q: _/ k6 f
int lvd_che_low2dot3V(void)4 m) F3 \$ w0 F+ Y" k" m
{# x: I! w' F2 u5 J$ L
int i, c = 0;
) T: g% E0 z9 f1 S- t$ m M0P_SYSCTRL->PERI_CLKEN_f.VC = 1;
1 V. \8 O( d F1 i; W1 E M0P_LVD->CR_f.SOURCE_SEL = 0; // VCC
3 F% x) _: ?' P M0P_LVD->CR_f.VTDS = 5; // 2.3V. ?" F9 D+ S4 m3 V1 ]$ r
M0P_LVD->CR_f.FLTEN = 0; // no filter
; U$ c# D& `8 x" D1 l( U6 X7 h, t3 G M0P_LVD->CR_f.DEBOUNCE_TIME = 0; // filter time
# O: c7 g2 ?: u) \" Q M0P_LVD->CR_f.HTEN = 1; // level
: C5 b9 G, p6 H1 \ M0P_LVD->CR_f.ACT = 0; // use as int* I* g" R4 F5 V6 M/ M- Y
M0P_LVD->CR_f.IE = 0; // int off
/ D4 {8 e/ a- R- i M0P_LVD->CR_f.LVDEN = 1; // LVD on 电池电压检测 不耗电时选择2.5V- A3 b' O$ E( Y. p
M0P_LVD->IFR_f.INTF = 0;
: v9 E1 v i. W' r( A delay_ms(2); if(M0P_LVD->IFR_f.INTF)/ Z2 X8 e4 B2 V$ K- c4 S) b
{
: {4 j' F/ @2 W' {! X, T" g M0P_LVD->IFR_f.INTF = 0; for(i = 0; i < 10; i++)
- d5 e! H+ B' F/ \$ u2 X {0 D/ M1 X8 R, J
delay_ms(1); if(M0P_LVD->IFR_f.INTF)4 E0 E9 D6 m; \/ x+ h* X
{
/ f0 G1 x" c# A c++;
7 J% P6 k. A5 P7 R) r" s2 S } M0P_LVD->IFR_f.INTF = 0;
4 @ ~. q2 N) M( h* o( Q }7 g% ]; v9 N4 m4 z9 o, `! A; D- Y, l' c
} M0P_LVD->CR_f.LVDEN = 0;
, ~, O U( k/ N+ `: b6 w6 f1 \( w M0P_SYSCTRL->PERI_CLKEN_f.VC = 0;6 }- K* _+ z- g9 j
return c > 8;
( w/ y" \6 u$ V; ~9 {. z4 `+ e}
' f! J7 F1 i9 k2 Y/ W" |3 K2 P |