EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
请教一下, lvd_che_low2dot3V这个函数是用于 检测 锂电池电压(初始时3V), 当设备中用于控制电机开关阀时,检测 电压低于2.3V时 作此时电池中的电能已耗尽,液晶屏上提示 【请换电池】 ,实测 当 电池电压3V时, 而后电机动作到达最终点时,电池电压为2.55V左右,请问此时用lvd_che_low2dot3V 这个函数测出的电压准吗?需要不需要用BGR?
; ]0 D6 G6 E" G- N1 l0 w请问 lvd_che_low2dot3V
; e, ~, @- }) T+ r+ _int lvd_che_low2dot3V(void)5 n0 t3 j! s3 t" v \! @9 r
{
* ^ z) Y [) @) w8 W) x& ~ ~5 r4 z int i, c = 0;9 r5 u1 O! K: `5 ?
M0P_SYSCTRL->PERI_CLKEN_f.VC = 1;
/ h8 c+ D5 N4 {8 W& Q) J' E M0P_LVD->CR_f.SOURCE_SEL = 0; // VCC: C, X, I; W. J. z# c s' s
M0P_LVD->CR_f.VTDS = 5; // 2.3V
7 h. T" R+ e8 u M0P_LVD->CR_f.FLTEN = 0; // no filter) r( E' ?/ G+ N& f( ~( v
M0P_LVD->CR_f.DEBOUNCE_TIME = 0; // filter time _4 E8 C: k& o, D0 E6 e
M0P_LVD->CR_f.HTEN = 1; // level
- w2 o% j: A8 R7 H- a M0P_LVD->CR_f.ACT = 0; // use as int2 c4 n, L1 m7 H O$ q
M0P_LVD->CR_f.IE = 0; // int off* W$ I; Y9 |8 R: m
M0P_LVD->CR_f.LVDEN = 1; // LVD on 电池电压检测 不耗电时选择2.5V: m$ g( b( \; S
M0P_LVD->IFR_f.INTF = 0;
A) R; L, J, m& Y% p+ Y& k delay_ms(2);
if(M0P_LVD->IFR_f.INTF) r" _/ S. j8 y( F# O/ S
{
' {2 o4 L$ O2 i" f- ?: c& ]* ^ ~ M0P_LVD->IFR_f.INTF = 0; for(i = 0; i < 10; i++)+ ^5 Y" V9 \, T1 V$ [
{: x. [3 \, F+ s5 R0 e- l8 r$ p) o
delay_ms(1); if(M0P_LVD->IFR_f.INTF)
E! r0 P7 J# j" T {
& f# W0 I+ Q& I" ~7 n. T' N c++;! P. }) d) ?' t( T) S) U+ g
} M0P_LVD->IFR_f.INTF = 0;
6 c5 Q2 k/ R/ M" m8 _6 o }
" Q* u0 K8 k8 E# E4 ~9 X } M0P_LVD->CR_f.LVDEN = 0;
9 D9 \3 A+ ^# y1 A) | M0P_SYSCTRL->PERI_CLKEN_f.VC = 0;+ ?0 R; W1 H( Y" D, l: \2 d
return c > 8;8 t8 t# u/ o/ B
}
: n) R% b0 k, ] |