EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
请教一下, lvd_che_low2dot3V这个函数是用于 检测 锂电池电压(初始时3V), 当设备中用于控制电机开关阀时,检测 电压低于2.3V时 作此时电池中的电能已耗尽,液晶屏上提示 【请换电池】 ,实测 当 电池电压3V时, 而后电机动作到达最终点时,电池电压为2.55V左右,请问此时用lvd_che_low2dot3V 这个函数测出的电压准吗?需要不需要用BGR? e" E$ J% \1 s3 o9 Y
请问 lvd_che_low2dot3V
9 d% B/ M$ i3 M9 `7 |8 ^% Mint lvd_che_low2dot3V(void)8 S8 h# K+ Q) q3 V) u# x( \0 c: i
{
# M7 O9 W" r9 R% W: l' p9 f int i, c = 0;+ w) Y5 H7 F3 j' q# `
M0P_SYSCTRL->PERI_CLKEN_f.VC = 1;$ _6 Z/ h4 W/ l" C4 j9 j
M0P_LVD->CR_f.SOURCE_SEL = 0; // VCC& r' l1 W& ]1 L+ q J+ F O8 D
M0P_LVD->CR_f.VTDS = 5; // 2.3V0 Z# u' }4 V- Q" C
M0P_LVD->CR_f.FLTEN = 0; // no filter
# G2 q: z7 ?9 U M0P_LVD->CR_f.DEBOUNCE_TIME = 0; // filter time
8 @ Q b% e9 o M0P_LVD->CR_f.HTEN = 1; // level+ b2 y' C5 E/ ?( `& q1 E5 v
M0P_LVD->CR_f.ACT = 0; // use as int
- B: p& I0 d$ G& E" J- [ M0P_LVD->CR_f.IE = 0; // int off
8 K6 B" p& A% W& Y! o$ n M0P_LVD->CR_f.LVDEN = 1; // LVD on 电池电压检测 不耗电时选择2.5V0 d& o8 ?1 s2 d- b1 s# \
M0P_LVD->IFR_f.INTF = 0;% Z6 z. g- o9 L; V3 h0 n
delay_ms(2);
if(M0P_LVD->IFR_f.INTF)
9 D* f5 E+ \. e1 o {
- Z. i x( W4 n6 i m- V M0P_LVD->IFR_f.INTF = 0; for(i = 0; i < 10; i++)
4 N) Y P) U) R. v# `( z {
5 k5 a& Q/ u e. P1 P; G+ G delay_ms(1); if(M0P_LVD->IFR_f.INTF)
: A, M$ y' s3 |3 E% H/ K% q {
4 d8 z& Q$ {/ h% x' G8 w. B, l% t c++;
8 ?! [8 q4 C2 Q7 m9 X0 C& m* _ } M0P_LVD->IFR_f.INTF = 0;) q# ~) K: v' D7 K6 j
}1 g/ r+ H; W" |' g
} M0P_LVD->CR_f.LVDEN = 0;
5 ~4 G0 G( Z+ ]* o4 a# C/ J M0P_SYSCTRL->PERI_CLKEN_f.VC = 0;
0 R% P( I9 U4 K% Q ~* l8 V return c > 8;5 l; H$ e1 y& E/ S
}
: u6 G) Z( m6 k% A6 n |