打印
[华山论剑]

关于低电压检测的问题,请教一下

[复制链接]
1206|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cr315|  楼主 | 2022-6-28 10:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

请教一下, lvd_che_low2dot3V这个函数是用于 检测 锂电池电压(初始时3V), 当设备中用于控制电机开关阀时,检测 电压低于2.3V时 作此时电池中的电能已耗尽,液晶屏上提示 【请换电池】 ,实测 当 电池电压3V时, 而后电机动作到达最终点时,电池电压为2.55V左右,请问此时用lvd_che_low2dot3V  这个函数测出的电压准吗?需要不需要用BGR?


请问   lvd_che_low2dot3V  


int lvd_che_low2dot3V(void)
{
    int i, c = 0;
    M0P_SYSCTRL->PERI_CLKEN_f.VC = 1;
    M0P_LVD->CR_f.SOURCE_SEL = 0; // VCC
    M0P_LVD->CR_f.VTDS = 5;     // 2.3V
    M0P_LVD->CR_f.FLTEN = 0;    // no filter
    M0P_LVD->CR_f.DEBOUNCE_TIME = 0; // filter time
    M0P_LVD->CR_f.HTEN = 1;     // level
    M0P_LVD->CR_f.ACT = 0;      // use as int
    M0P_LVD->CR_f.IE = 0;       // int off
    M0P_LVD->CR_f.LVDEN = 1;    // LVD on          电池电压检测   不耗电时选择2.5V
    M0P_LVD->IFR_f.INTF = 0;
    delay_ms(2);

    if(M0P_LVD->IFR_f.INTF)
    {
        M0P_LVD->IFR_f.INTF = 0;

        for(i = 0; i < 10; i++)
        {
            delay_ms(1);

            if(M0P_LVD->IFR_f.INTF)
            {
                c++;
            }

            M0P_LVD->IFR_f.INTF = 0;
        }
    }

    M0P_LVD->CR_f.LVDEN = 0;
    M0P_SYSCTRL->PERI_CLKEN_f.VC = 0;
    return c > 8;
}


使用特权

评论回复
沙发
littlelida| | 2022-7-10 14:20 | 只看该作者
ADC实现的监测?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1327

主题

3833

帖子

0

粉丝