有ch582M低壓監(jiān)測例程么

請問有ch582M低壓監(jiān)測例程么

提供一個579的低壓監(jiān)控程序,可以參考一下:

3.png


image.png

這樣子設(shè)置之后不行,我電壓低于2.5V了,但是到不了這個中斷,我開啟低功耗模式的,這個有影響嗎


我們的例程默認開啟了低電壓和超低電壓檢測,此時處于超低電壓檢測,需要使用NMI_Handler這個中斷,如果沒有只開啟其中那種則使用如上圖你的配置即可。


我在低功耗進入的時候會讀取電池狀態(tài)寄存器,在電壓2.3V時,發(fā)現(xiàn)也沒有置1,是不是代表沒有處于低電壓

image.png


試過取消HAL_SLEEP后,低于2.5V后可以在WDT_IRQHandler中斷。但是HAL_SLEEP=1后,HMI和WDT中斷都不進入。由于我設(shè)備安裝的電池,所以需要低功耗模式,也可以檢測低于2.5V后報警功能,請問應(yīng)該怎么操作


HAL_SLEEP=1? 無法識別低電壓哦



在main一開始加?????PowerMonitor(ENABLE,?HALevel_2V5);然后寫兩個中斷

__attribute__((section(".highcode")))
void?HardFault_Handler(?void?)
{

??LOG_INFO("hardfault");

??LOG_INFO("MCAUSE:%#x",__get_MCAUSE());
??LOG_INFO("MEPC:%#x",__get_MEPC());
??LOG_INFO("MTVAL:%#x",__get_MTVAL());
??SYS_ResetExecute();
??CODE_UNREACHABLE;
}

__INTERRUPT
__HIGH_CODE
void?NMI_Handler(void)
{
????FLASH_ROM_SW_RESET();

????PRINT("NMI\n");
????PRINT("MEPC:?%#lx\n",?__get_MEPC());
????PRINT("MCAUSE:%#lx\n",?__get_MCAUSE());
????PRINT("MTVAL:%#lx\n",?__get_MTVAL());

????/*?選擇高精度電壓監(jiān)控?*/
????while?(1)?{
????????static?uint32_t?i?=?0;
????????if(R8_BAT_STATUS?&?RB_BAT_STAT_LOWER){
????????????i?=?0;
????????}?else?{
????????????i++;
????????????if(i?>?100){
????????????????break;
????????????}
????????}
????????DelayMs(1);
????}

????/*?選擇低功耗電壓監(jiān)控?*/
????//?while?(1){
????//?????static?uint32_t?i?=?0;
????//?????if(R8_BAT_STATUS?&?RB_BAT_STAT_LOW){
????//?????????i?=?0;
????//?????}?else?{
????//?????????i++;
????//?????????if(i?>?100){
????//?????????????break;
????//?????????}
????//?????}
????//?????DelayMs(1);
????//?}

????SYS_ResetExecute();
????__builtin_unreachable();
}


image.png新建了個工程,單獨測試了下低電壓檢測。電壓到2.5以下后,沒有跳轉(zhuǎn),并且第二次上電程序都無法運行了。需要重寫程序。


只有登錄才能回復(fù),可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频