添加NTC功能
系统有一个自带的NTC功能但是只能检测温度高于某值但是如果要添加上限和下限就需要自己写具体实现如下config.h中/***************************************************************************** * Module : NTC检测功能 *****************************************************************************/#definePOTENT_KEY1//NTC功能标志位bsp_key.c下key_init()中#ifPOTENT_KEYadc_ch|BIT(ADCCH_PA7);#endifbsp_sys.c 中创建变量用于承接IO口的值#ifPOTENT_KEYu8 in_first_num0;//承接每次IO口获取到的值#endifbsp_sys.h 中声明为全局变量#ifPOTENT_KEYexternu8 in_first_num;//承接每次IO口获取到的值#endifbsp_sys.c下usr_tmr5ms_isr()中//每1S检测一次if(sys.tmr5ms_cnt3200){#ifPOTENT_KEYin_first_num(u8)(adc_cb.sfr[ADCCH_PA7]2);#endif}bsp_charge.c下bsp_charge_box_process_do()中添加温度范围数值为实际测试#ifPOTENT_KEYif((in_first_num50)||(in_first_num158)){//关闭充电RTCCON8BIT(1);LED_PWR_SET_OFF();}elseif((in_first_num50)(in_first_num158)){//唤醒充电RTCCON8|~BIT(1);LED_PWR_SET_ON();}#endiffunc_bt.c下fun_bt()中#ifPOTENT_KEYif((in_first_num155)||(in_first_num49))//开机情况下超过温度就关机{func_message(KLH_PLAY_PWR_USER_DEF);}#endif还有一个需要注意由于IO口获取电压在中断中获取需要在充电的时候将中断开启。具体如下bsp_sys.c下bsp_sys_init中if(CHARGE_DC_IN()){/// enable user timer for display dacuser_tmr_set_enable(1,1);led_init();key_init();#ifPWM_RGB_ENpwm_init();#endif// PWM_RGB_ENplugin_init();}else{led_init();key_init();#ifPWM_RGB_ENpwm_init();#endif// PWM_RGB_ENplugin_init();/// enable user timer for display dacuser_tmr_set_enable(1,1);}