#include "System_Monitor.h" #include <stdio.h> typedef struct { monitorlib_uint8_t SumCnt; monitorlib_uint16_t DebounceTimer; monitorlib_uint32_t ActVoltage; monitorlib_uint8_t FinalSts; monitorlib_uint8_t ActSts; } MonitorStruct; MonitorStruct SysFun_KL30Monitor; MonitorStruct SysFun_KL15Monitor; MonitorStruct SysNM_KL30Monitor; MonitorStruct SysNM_KL15Monitor; #define Base_Vol 0u #define ENTER_LOW_N_RANGE 6500U #define EXIT_LOW_N_RANGE 7000U #define ENTER_LOW_Y_RANGE 9000U #define EXIT_LOW_Y_RANGE 9500U #define EXIT_HIGH_Y_RANGE 16000U #define ENTER_HIGH_Y_RANGE 16500U #define EXIT_HIGH_N_RANGE 18500U #define ENTER_HIGH_N_RANGE 19000U #define Top_Vol 0xffffu static monitorlib_uint8_t System_Calc_NMRange(monitorlib_uint16_t u16Vol); static monitorlib_uint8_t System_Calc_FunRange(monitorlib_uint16_t u16Vol); static void System_Fast_WakeUp(void); static void System_Fun_Process(void); static void System_NM_Process(void); MonitorExt_st pfunction; monitorlib_uint8_t SysWakeUpMode = 0u; monitorlib_uint8_t SetVolFlag = 0u; monitorlib_uint16_t FUNSysVol_Range [ 10u ] = { Base_Vol, ENTER_LOW_N_RANGE, EXIT_LOW_N_RANGE, ENTER_LOW_Y_RANGE, EXIT_LOW_Y_RANGE, EXIT_HIGH_Y_RANGE, ENTER_HIGH_Y_RANGE, EXIT_HIGH_N_RANGE, ENTER_HIGH_N_RANGE, Top_Vol, }; monitorlib_uint16_t NMSysVol_Range [ 10u ] = { Base_Vol, ENTER_LOW_N_RANGE, EXIT_LOW_N_RANGE, ENTER_LOW_Y_RANGE, EXIT_LOW_Y_RANGE, EXIT_HIGH_Y_RANGE, ENTER_HIGH_Y_RANGE, EXIT_HIGH_N_RANGE, ENTER_HIGH_N_RANGE, Top_Vol, }; monitorlib_uint16_t t_FUN_KL30_Debounce; monitorlib_uint16_t t_FUN_KL15_Debounce; monitorlib_uint16_t t_NM_KL30_Debounce; monitorlib_uint16_t t_NM_KL15_Debounce; monitorlib_uint16_t t_NM_KL30_Debounce_Cancel; monitorlib_uint16_t t_NM_KL15_Debounce_Cancel; monitorlib_uint16_t t_FUN_KL30_Debounce_Cancel; monitorlib_uint16_t t_FUN_KL15_Debounce_Cancel; monitorlib_uint16_t t_NM_KL30_timer; monitorlib_uint16_t t_FUN_KL30_timer; monitorlib_uint8_t Read_KL30_ConvertFinish(void) { return SysWakeUpMode; } static monitorlib_uint8_t System_Calc_FunRange(monitorlib_uint16_t u16Vol) { monitorlib_uint8_t i; for ( i = 0u; i < (sizeof(FUNSysVol_Range) / sizeof(FUNSysVol_Range [ 0 ])); i++ ) { if ( u16Vol < FUNSysVol_Range [ i ] ) { break; } } return i; } static monitorlib_uint8_t System_Calc_NMRange(monitorlib_uint16_t u16Vol) { monitorlib_uint8_t i; for ( i = 0u; i < (sizeof(NMSysVol_Range) / sizeof(NMSysVol_Range [ 0 ])); i++ ) { if ( u16Vol < NMSysVol_Range [ i ] ) { break; } } return i; } void Sys_Set_Pata(const monitorlib_uint16_t FUN_Vol [], MonitorExt_st *pfunc) { FUNSysVol_Range [ 0 ] = FUN_Vol [ 0 ]; FUNSysVol_Range [ 1 ] = FUN_Vol [ 1 ]; FUNSysVol_Range [ 2 ] = FUN_Vol [ 2 ]; FUNSysVol_Range [ 3 ] = FUN_Vol [ 3 ]; FUNSysVol_Range [ 4 ] = FUN_Vol [ 4 ]; FUNSysVol_Range [ 5 ] = FUN_Vol [ 5 ]; FUNSysVol_Range [ 6 ] = FUN_Vol [ 6 ]; FUNSysVol_Range [ 7 ] = FUN_Vol [ 7 ]; FUNSysVol_Range [ 8 ] = FUN_Vol [ 8 ]; FUNSysVol_Range [ 9 ] = FUN_Vol [ 9 ]; t_FUN_KL30_Debounce = FUN_Vol [ 10 ]; t_FUN_KL15_Debounce = FUN_Vol [ 11 ]; NMSysVol_Range [ 0 ] = FUN_Vol [ 12 ]; NMSysVol_Range [ 1 ] = FUN_Vol [ 13 ]; NMSysVol_Range [ 2 ] = FUN_Vol [ 14 ]; NMSysVol_Range [ 3 ] = FUN_Vol [ 15 ]; NMSysVol_Range [ 4 ] = FUN_Vol [ 16 ]; NMSysVol_Range [ 5 ] = FUN_Vol [ 17 ]; NMSysVol_Range [ 6 ] = FUN_Vol [ 18 ]; NMSysVol_Range [ 7 ] = FUN_Vol [ 19 ]; NMSysVol_Range [ 8 ] = FUN_Vol [ 20 ]; NMSysVol_Range [ 9 ] = FUN_Vol [ 21 ]; t_NM_KL30_Debounce = FUN_Vol [ 22 ]; t_NM_KL15_Debounce = FUN_Vol [ 23 ]; t_NM_KL30_Debounce_Cancel = FUN_Vol [ 24 ]; t_FUN_KL30_Debounce_Cancel = FUN_Vol [ 25 ]; pfunction.SysGet_KL30_Valid = pfunc->SysGet_KL30_Valid; pfunction.SysGet_KL15_Valid = pfunc->SysGet_KL15_Valid; pfunction.SysGet_KL30_value_Force = pfunc->SysGet_KL30_value_Force; pfunction.SysGet_KL15_value_Force = pfunc->SysGet_KL15_value_Force; pfunction.SysGet_KL30_value = pfunc->SysGet_KL30_value; pfunction.SysGet_KL15_value = pfunc->SysGet_KL15_value; pfunction.SysGet_KL15Line = pfunc->SysGet_KL15Line; pfunction.COM_Delay = pfunc->COM_Delay; pfunction.SysMonitorLogic = pfunc->SysMonitorLogic; SetVolFlag = 0x55u; } void System_Monitor_KL30Init(void) { SysWakeUpMode = 0u; SysFun_KL30Monitor.SumCnt = 0u; SysFun_KL30Monitor.DebounceTimer = 0u; SysFun_KL30Monitor.ActVoltage = 0u; SysFun_KL30Monitor.FinalSts = 0u; SysFun_KL30Monitor.ActSts = 0u; SysFun_KL15Monitor.SumCnt = 0u; SysFun_KL15Monitor.DebounceTimer = 0u; SysFun_KL15Monitor.ActVoltage = 0u; SysFun_KL15Monitor.FinalSts = 0u; SysFun_KL15Monitor.ActSts = 0u; SysNM_KL30Monitor.SumCnt = 0u; SysNM_KL30Monitor.DebounceTimer = 0u; SysNM_KL30Monitor.ActVoltage = 0u; SysNM_KL30Monitor.FinalSts = 0u; SysNM_KL30Monitor.ActSts = 0u; SysNM_KL15Monitor.SumCnt = 0u; SysNM_KL15Monitor.DebounceTimer = 0u; SysNM_KL15Monitor.ActVoltage = 0u; SysNM_KL15Monitor.FinalSts = 0u; SysNM_KL15Monitor.ActSts = 0u; if ( SetVolFlag != 0x55u ) { t_NM_KL30_Debounce = 1000u; t_NM_KL15_Debounce = 2u; t_FUN_KL30_Debounce = 1000u; t_FUN_KL15_Debounce = 2u; t_NM_KL30_Debounce_Cancel = 1000U; t_NM_KL15_Debounce_Cancel = 2U; t_FUN_KL30_Debounce_Cancel = 1000U; t_FUN_KL15_Debounce_Cancel = 2U; FUNSysVol_Range [ 0 ] = Base_Vol; FUNSysVol_Range [ 1 ] = ENTER_LOW_N_RANGE; FUNSysVol_Range [ 2 ] = EXIT_LOW_N_RANGE; FUNSysVol_Range [ 3 ] = ENTER_LOW_Y_RANGE; FUNSysVol_Range [ 4 ] = EXIT_LOW_Y_RANGE; FUNSysVol_Range [ 5 ] = EXIT_HIGH_Y_RANGE; FUNSysVol_Range [ 6 ] = ENTER_HIGH_Y_RANGE; FUNSysVol_Range [ 7 ] = EXIT_HIGH_N_RANGE; FUNSysVol_Range [ 8 ] = ENTER_HIGH_N_RANGE; FUNSysVol_Range [ 9 ] = Top_Vol; NMSysVol_Range [ 0 ] = Base_Vol; NMSysVol_Range [ 1 ] = ENTER_LOW_N_RANGE; NMSysVol_Range [ 2 ] = EXIT_LOW_N_RANGE; NMSysVol_Range [ 3 ] = ENTER_LOW_Y_RANGE; NMSysVol_Range [ 4 ] = EXIT_LOW_Y_RANGE; NMSysVol_Range [ 5 ] = EXIT_HIGH_Y_RANGE; NMSysVol_Range [ 6 ] = ENTER_HIGH_Y_RANGE; NMSysVol_Range [ 7 ] = EXIT_HIGH_N_RANGE; NMSysVol_Range [ 8 ] = ENTER_HIGH_N_RANGE; NMSysVol_Range [ 9 ] = Top_Vol; SetVolFlag = 0x55u; } if ( pfunction.COM_Delay != (( void * )0) ) { pfunction.COM_Delay(260U); } System_Fast_WakeUp( ); } void System_Monitor_WakeupInit(void) { SysWakeUpMode = 0u; SysFun_KL30Monitor.SumCnt = 0u; SysFun_KL30Monitor.DebounceTimer = 0u; SysFun_KL30Monitor.ActVoltage = 0u; SysFun_KL30Monitor.FinalSts = 0u; SysFun_KL30Monitor.ActSts = 0u; SysFun_KL15Monitor.SumCnt = 0u; SysFun_KL15Monitor.DebounceTimer = 0u; SysFun_KL15Monitor.ActVoltage = 0u; SysFun_KL15Monitor.FinalSts = 0u; SysFun_KL15Monitor.ActSts = 0u; SysNM_KL30Monitor.SumCnt = 0u; SysNM_KL30Monitor.DebounceTimer = 0u; SysNM_KL30Monitor.ActVoltage = 0u; SysNM_KL30Monitor.FinalSts = 0u; SysNM_KL30Monitor.ActSts = 0u; SysNM_KL15Monitor.SumCnt = 0u; SysNM_KL15Monitor.DebounceTimer = 0u; SysNM_KL15Monitor.ActVoltage = 0u; SysNM_KL15Monitor.FinalSts = 0u; SysNM_KL15Monitor.ActSts = 0u; if ( SetVolFlag != 0x55u ) { t_NM_KL30_Debounce = 1000u; t_NM_KL15_Debounce = 2u; t_FUN_KL30_Debounce = 1000u; t_FUN_KL15_Debounce = 2u; t_NM_KL30_Debounce_Cancel = 1000U; t_NM_KL15_Debounce_Cancel = 2U; t_FUN_KL30_Debounce_Cancel = 1000U; t_FUN_KL15_Debounce_Cancel = 2U; FUNSysVol_Range [ 0 ] = Base_Vol; FUNSysVol_Range [ 1 ] = ENTER_LOW_N_RANGE; FUNSysVol_Range [ 2 ] = EXIT_LOW_N_RANGE; FUNSysVol_Range [ 3 ] = ENTER_LOW_Y_RANGE; FUNSysVol_Range [ 4 ] = EXIT_LOW_Y_RANGE; FUNSysVol_Range [ 5 ] = EXIT_HIGH_Y_RANGE; FUNSysVol_Range [ 6 ] = ENTER_HIGH_Y_RANGE; FUNSysVol_Range [ 7 ] = EXIT_HIGH_N_RANGE; FUNSysVol_Range [ 8 ] = ENTER_HIGH_N_RANGE; FUNSysVol_Range [ 9 ] = Top_Vol; NMSysVol_Range [ 0 ] = Base_Vol; NMSysVol_Range [ 1 ] = ENTER_LOW_N_RANGE; NMSysVol_Range [ 2 ] = EXIT_LOW_N_RANGE; NMSysVol_Range [ 3 ] = ENTER_LOW_Y_RANGE; NMSysVol_Range [ 4 ] = EXIT_LOW_Y_RANGE; NMSysVol_Range [ 5 ] = EXIT_HIGH_Y_RANGE; NMSysVol_Range [ 6 ] = ENTER_HIGH_Y_RANGE; NMSysVol_Range [ 7 ] = EXIT_HIGH_N_RANGE; NMSysVol_Range [ 8 ] = ENTER_HIGH_N_RANGE; NMSysVol_Range [ 9 ] = Top_Vol; SetVolFlag = 0x55u; } System_Fast_WakeUp( ); } void Sys_Status_Update_Service(void) { System_Fun_Process( ); System_NM_Process( ); if ( pfunction.SysMonitorLogic != (( void * )0) ) { pfunction.SysMonitorLogic( ); } } static void System_Fast_WakeUp(void) { monitorlib_uint16_t KL30_Voltage; monitorlib_uint16_t KL15_Voltage; monitorlib_uint16_t Voltage; monitorlib_uint8_t NormalKL30Cnt = 0U; monitorlib_uint8_t abnormalKL30Cnt = 0U; monitorlib_uint8_t AttemptCnt = 0U; AttemptCnt = 0u; while ( SysNM_KL30Monitor.FinalSts == 0u ) { if ( pfunction.COM_Delay != (( void * )0) ) { pfunction.COM_Delay(2U); } /*KL30 KL15 voltage */ if ( pfunction.SysGet_KL30_value_Force != ( void * )0 ) { KL30_Voltage = pfunction.SysGet_KL30_value_Force( ); } else { KL30_Voltage = 0u; } if ( pfunction.SysGet_KL15_value_Force != ( void * )0 ) { KL15_Voltage = pfunction.SysGet_KL15_value_Force( ); } else { KL15_Voltage = 0u; } if ( KL30_Voltage > KL15_Voltage ) { Voltage = KL30_Voltage; } else { Voltage = KL15_Voltage; } if ( (Voltage <= NMSysVol_Range [ 2 ]) || (Voltage >= NMSysVol_Range [ 7 ]) ) { NormalKL30Cnt = 0U; abnormalKL30Cnt++; } else { NormalKL30Cnt++; abnormalKL30Cnt = 0U; } AttemptCnt++; if ( AttemptCnt >= 10u ) { break; } if ( NormalKL30Cnt >= 5U ) { SysNM_KL30Monitor.FinalSts = 5u; } if ( abnormalKL30Cnt >= 5U ) { SysNM_KL30Monitor.FinalSts = 9u; } } if ( (SysNM_KL30Monitor.FinalSts != 0u) ) { SysWakeUpMode = 0x55U; if ( pfunction.SysGet_KL15Line != (( void * )0) ) { SysNM_KL15Monitor.FinalSts = pfunction.SysGet_KL15Line( ); SysNM_KL15Monitor.ActSts = pfunction.SysGet_KL15Line( ); } else { SysNM_KL15Monitor.FinalSts = 0u; SysNM_KL15Monitor.ActSts = 0u; } if ( pfunction.SysMonitorLogic != ( void * )0 ) { pfunction.SysMonitorLogic( ); } } } static void System_NM_Process(void) { monitorlib_uint8_t m8; static monitorlib_uint16_t DebpounceTimer; monitorlib_uint16_t Voltage; monitorlib_uint8_t VoltageKL30Valid; monitorlib_uint8_t VoltageKL15Valid; monitorlib_uint16_t Voltage_KL15; monitorlib_uint16_t Voltage_KL30; if ( pfunction.SysGet_KL15Line != (( void * )0) ) { if ( SysNM_KL15Monitor.ActSts == pfunction.SysGet_KL15Line( ) ) { if ( SysNM_KL15Monitor.DebounceTimer < t_NM_KL15_Debounce ) { SysNM_KL15Monitor.DebounceTimer++; } else { SysNM_KL15Monitor.FinalSts = SysNM_KL15Monitor.ActSts; } } else { SysNM_KL15Monitor.DebounceTimer = 0u; SysNM_KL15Monitor.ActSts = pfunction.SysGet_KL15Line( ); } } else { SysNM_KL15Monitor.FinalSts = 0u; SysNM_KL15Monitor.ActSts = 0u; SysNM_KL15Monitor.DebounceTimer = 0u; } if ( pfunction.SysGet_KL30_Valid != ( void * )0 ) { VoltageKL30Valid = pfunction.SysGet_KL30_Valid( ); } else { VoltageKL30Valid = 0u; } if ( pfunction.SysGet_KL15_Valid != ( void * )0 ) { VoltageKL15Valid = pfunction.SysGet_KL15_Valid( ); } else { VoltageKL15Valid = 0u; } if ( (VoltageKL30Valid == 1U) && (VoltageKL15Valid == 1U) ) { if ( pfunction.SysGet_KL15_value != (( void * )0) ) { Voltage_KL15 = pfunction.SysGet_KL15_value( ); } else { Voltage_KL15 = 0u; } if ( pfunction.SysGet_KL15_value != (( void * )0) ) { Voltage_KL30 = pfunction.SysGet_KL30_value( ); } else { Voltage_KL30 = 0u; } if ( Voltage_KL30 > Voltage_KL15 ) { Voltage = Voltage_KL30; } else { Voltage = Voltage_KL15; } if ( SysNM_KL30Monitor.SumCnt < 50u ) { SysNM_KL30Monitor.ActVoltage += Voltage; SysNM_KL30Monitor.SumCnt += 1u; Voltage = ( monitorlib_uint16_t )(SysNM_KL30Monitor.ActVoltage / SysNM_KL30Monitor.SumCnt); } else { SysNM_KL30Monitor.SumCnt = 0u; SysNM_KL30Monitor.ActVoltage = 0u; SysNM_KL30Monitor.ActVoltage += Voltage; SysNM_KL30Monitor.SumCnt += 1u; Voltage = ( monitorlib_uint16_t )(SysNM_KL30Monitor.ActVoltage / SysNM_KL30Monitor.SumCnt); } m8 = System_Calc_NMRange(Voltage); if ( SysNM_KL30Monitor.ActSts == m8 ) { switch ( SysNM_KL30Monitor.FinalSts ) { case 0: case 1: case 9: t_NM_KL30_timer = t_NM_KL30_Debounce_Cancel; break; default: t_NM_KL30_timer = t_NM_KL30_Debounce; break; } if ( SysNM_KL30Monitor.DebounceTimer < t_NM_KL30_timer ) /*40202-8*/ { SysNM_KL30Monitor.DebounceTimer++; } else { DebpounceTimer = 0u; if ( SysNM_KL30Monitor.FinalSts == 9u ) /* 高压 */ { if ( (m8 == 9u) || (m8 == 8u) ) { SysNM_KL30Monitor.FinalSts = 9u; /** 维持不变 **/ } else { SysNM_KL30Monitor.FinalSts = m8; /**退�?*/ } } if ( SysNM_KL30Monitor.FinalSts == 1u ) /* 低压 */ { if ( (m8 == 1u) || (m8 == 2u) ) { SysNM_KL30Monitor.FinalSts = 1u; /** 维持不变 */ } else { SysNM_KL30Monitor.FinalSts = m8; /**退�?*/ } } /* 非高低压 */ if ( (SysNM_KL30Monitor.FinalSts != 1u) && (SysNM_KL30Monitor.FinalSts != 9u) ) { SysNM_KL30Monitor.FinalSts = m8; /** 进入*/ } } } else { /* 计时时间清除 */ SysNM_KL30Monitor.DebounceTimer = 0U; DebpounceTimer++; if ( DebpounceTimer >= 5u ) { DebpounceTimer = 0u; SysNM_KL30Monitor.ActSts = m8; } } } } static void System_Fun_Process(void) { monitorlib_uint8_t m8; monitorlib_uint8_t VoltageKL30Valid; monitorlib_uint8_t VoltageKL15Valid; monitorlib_uint16_t Voltage; monitorlib_uint16_t Voltage_KL15; monitorlib_uint16_t Voltage_KL30; static monitorlib_uint16_t DebpounceTimer; if ( pfunction.SysGet_KL15Line != (( void * )0) ) { if ( SysFun_KL15Monitor.ActSts == pfunction.SysGet_KL15Line( ) ) { if ( SysFun_KL15Monitor.DebounceTimer < t_FUN_KL15_Debounce ) { SysFun_KL15Monitor.DebounceTimer++; } else { SysFun_KL15Monitor.FinalSts = SysFun_KL15Monitor.ActSts; } if(SysFun_KL15Monitor.ActSts) { SysFun_KL15Monitor.FinalSts = SysFun_KL15Monitor.ActSts; } } else { SysFun_KL15Monitor.DebounceTimer = 0u; SysFun_KL15Monitor.ActSts = pfunction.SysGet_KL15Line( ); } } else { SysFun_KL15Monitor.DebounceTimer = 0u; SysFun_KL15Monitor.FinalSts = 0u; SysFun_KL15Monitor.ActSts = 0u; } if ( pfunction.SysGet_KL30_Valid != (( void * )0) ) { VoltageKL30Valid = pfunction.SysGet_KL30_Valid( ); }else { VoltageKL30Valid = 0u; } if ( pfunction.SysGet_KL15_Valid != (( void * )0) ) { VoltageKL15Valid = pfunction.SysGet_KL15_Valid( ); }else { VoltageKL15Valid = 0u; } if ( (VoltageKL30Valid == 1U) && (VoltageKL15Valid == 1U) ) { if ( pfunction.SysGet_KL15_value != (( void * )0) ) { Voltage_KL15 = pfunction.SysGet_KL15_value( ); } else { Voltage_KL15 = 0u; } if ( pfunction.SysGet_KL30_value != (( void * )0) ) { Voltage_KL30 = pfunction.SysGet_KL30_value( ); } else { Voltage_KL30 = 0u; } if ( Voltage_KL30 > Voltage_KL15 ) { Voltage = Voltage_KL30; } else { Voltage = Voltage_KL15; } if ( SysFun_KL30Monitor.SumCnt < 50u ) { SysFun_KL30Monitor.ActVoltage += Voltage; SysFun_KL30Monitor.SumCnt += 1u; Voltage = ( monitorlib_uint16_t )(SysFun_KL30Monitor.ActVoltage / SysFun_KL30Monitor.SumCnt); } else { SysFun_KL30Monitor.SumCnt = 0u; SysFun_KL30Monitor.ActVoltage = 0u; SysFun_KL30Monitor.ActVoltage += Voltage; SysFun_KL30Monitor.SumCnt += 1u; Voltage = ( monitorlib_uint16_t )(SysFun_KL30Monitor.ActVoltage / SysFun_KL30Monitor.SumCnt); } m8 = System_Calc_FunRange(Voltage); // //printf("1 is %d, 2 is %d\r\n", m8, SysFun_KL30Monitor.FinalSts); if ( SysFun_KL30Monitor.ActSts == m8 ) { DebpounceTimer = 0u; switch ( SysFun_KL30Monitor.FinalSts ) { case 0: case 1: case 9: t_FUN_KL30_timer = t_FUN_KL30_Debounce_Cancel; break; default: t_FUN_KL30_timer = t_FUN_KL30_Debounce; break; } /* 计时�?计时�?1000*2ms */ if ( SysFun_KL30Monitor.DebounceTimer < t_FUN_KL30_timer ) /*40202-8*/ { SysFun_KL30Monitor.DebounceTimer++; } else { if ( SysFun_KL30Monitor.FinalSts > 7u ) /* 高压 */ { if ( (m8 == 9u) || (m8 == 8u) || (m8 == 7u) ) { SysFun_KL30Monitor.FinalSts = 9u; SysFun_KL15Monitor.FinalSts = 0u; } else { SysFun_KL30Monitor.FinalSts = m8; } } if ( SysFun_KL30Monitor.FinalSts == 1u ) /* 低压 */ { if ( (m8 == 1u) || (m8 == 2u) ) { SysFun_KL30Monitor.FinalSts = 1u; SysFun_KL15Monitor.FinalSts = 0u; } else { SysFun_KL30Monitor.FinalSts = m8; } } /* 非高低压 */ if ( (SysFun_KL30Monitor.FinalSts != 1u) && (SysFun_KL30Monitor.FinalSts <= 7u) ) { SysFun_KL30Monitor.FinalSts = m8; } } } else { /* 计时时间清除 */ SysFun_KL30Monitor.DebounceTimer = 0U; DebpounceTimer++; if ( DebpounceTimer >= 5u ) { DebpounceTimer = 0u; SysFun_KL30Monitor.ActSts = m8; } } } /* else { SysFun_KL30Monitor.FinalSts = 1u; SysFun_KL15Monitor.FinalSts = 0u; }*/ } monitorlib_uint8_t System_NM_KL30_Status_Get(void) { return SysNM_KL30Monitor.FinalSts; } monitorlib_uint8_t System_NM_KL15_Status_Get(void) { return SysNM_KL15Monitor.FinalSts; } monitorlib_uint8_t System_FUN_KL30_Status_Get(void) { return SysFun_KL30Monitor.FinalSts; } monitorlib_uint8_t System_FUN_KL15_Status_Get(void) { return SysFun_KL15Monitor.FinalSts; } monitorlib_uint16_t Get_Sysmonitor_Version(void) { return 0x0002u; }