diff --git a/Firmware/Source/Application/BackLight.c b/Firmware/Source/Application/BackLight.c index 4267b5219f3ec3c882fe154d49b020feb0e7da69..779922f2ac9410aecb86fcf059b2954e0fb962d1 100644 --- a/Firmware/Source/Application/BackLight.c +++ b/Firmware/Source/Application/BackLight.c @@ -1,6 +1,12 @@ #include "Backlight.h" #include "Components.h" +#define BACK_LIGHT_Val_1 100 +#define BACK_LIGHT_Val_2 300 +#define BACK_LIGHT_Val_3 500 +#define BACK_LIGHT_Val_4 700 +#define BACK_LIGHT_Val_5 900 + #define LIGHT_DATA_TIME 10u /*这里填写多长时间采集一个数æ®ï¼Œå•ä½ms*/ #define LIGHT_DATA_NUM 20u /*ç‡ƒæ²¹ç”µé˜»é‡‡é›†æ•°æ®æ€»æ•° 最大255*/ #define LIGHT_CAL_START 5u /*æ•°æ®æŽ’åºåŽå–ä¸é—´éƒ¨åˆ†è®¡ç®—å¹³å‡ï¼šèµ·å§‹*/ @@ -477,4 +483,32 @@ void BackLight_Service(void) { Backlight_Operate.SetPwmCbk(0); } -} \ No newline at end of file +} + +void BackLight_Process(void) +{ + if(Menu_Item_Select_Get(MENU_ITEM_BACKLIGHT_5) == 1) + { + TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, BACK_LIGHT_Val_5); + } + else if(Menu_Item_Select_Get(MENU_ITEM_BACKLIGHT_4) == 1) + { + TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, BACK_LIGHT_Val_4); + } + else if(Menu_Item_Select_Get(MENU_ITEM_BACKLIGHT_3) == 1) + { + TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, BACK_LIGHT_Val_3); + } + else if(Menu_Item_Select_Get(MENU_ITEM_BACKLIGHT_2) == 1) + { + TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, BACK_LIGHT_Val_2); + } + else if(Menu_Item_Select_Get(MENU_ITEM_BACKLIGHT_1) == 1) + { + TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, BACK_LIGHT_Val_1); + } + else + { + ; + } +} diff --git a/Firmware/Source/Application/BackLight.h b/Firmware/Source/Application/BackLight.h index 2a2f807665f7cfe5b8f0ede3dc2f7a614375bac2..66bf49a11b8111b503b84947e02b1e973d0f4bd9 100644 --- a/Firmware/Source/Application/BackLight.h +++ b/Firmware/Source/Application/BackLight.h @@ -22,7 +22,7 @@ #endif /* NULL */ void Backlight_KL30_Wakeup_Init(void); - +void BackLight_Process(void); diff --git a/Firmware/Source/Component/AMT630H/AMT630H_Datas.c b/Firmware/Source/Component/AMT630H/AMT630H_Datas.c index f11d3fb2f06e7989756ea475c49cc21e90470180..d1933d50f5f4175fd29bd0e0275cda6656a2f299 100644 --- a/Firmware/Source/Component/AMT630H/AMT630H_Datas.c +++ b/Firmware/Source/Component/AMT630H/AMT630H_Datas.c @@ -742,7 +742,7 @@ void AMT630H_GUI_Clock_Information(uint8_t Clock_Hour, uint8_t Clock_Min) else if(g_u8Language == EN) { SetPagePic(GRAPHICS_PAGE_0, Pic_0017_19_397);/*下方èœå•*/ - SetPagePic(GRAPHICS_PAGE_0, Pic_0019_478_341);/*返回*/ + SetPagePic(GRAPHICS_PAGE_0, Pic_0019_478_341);/*return*/ SetPagePic(GRAPHICS_PAGE_0, Pic_0021_510_222);/* : */ } @@ -767,13 +767,13 @@ void AMT630H_GUI_Clock_Information(uint8_t Clock_Hour, uint8_t Clock_Min) if(g_u8Language == CH) { SetPagePic(GRAPHICS_PAGE_0, Pic_0323_27_396);/*下方èœå•*/ - SetPagePic(GRAPHICS_PAGE_0, Pic_0208_478_341);/*返回*/ + SetPagePic(GRAPHICS_PAGE_0, Pic_0324_489_338);/*返回*/ SetPagePic(GRAPHICS_PAGE_0, Pic_0209_510_222);/* : */ } else if(g_u8Language == EN) { SetPagePic(GRAPHICS_PAGE_0, Pic_0206_19_397);/*下方èœå•*/ - SetPagePic(GRAPHICS_PAGE_0, Pic_0324_489_338);/*返回*/ + SetPagePic(GRAPHICS_PAGE_0, Pic_0208_478_341);/*return*/ SetPagePic(GRAPHICS_PAGE_0, Pic_0209_510_222);/* : */ } @@ -1069,7 +1069,7 @@ static void AMT630H_GUI_Clock_Setting(uint8_t Clock_Hour, uint8_t Clock_Min, uin ; } /*Digital changes*/ - //Menu_Logic_Operation_Clock_Hour_Tenb_Set(Menu_Key_en_t enKeyType); + Menu_Logic_Operation_Clock_Hour_Tenb_Set(MENU_KEY_CONFIRM_SHORT); break; case MENU_ITEM_CLOCK_HOUR_BIT_SET: /*Cursor blinking*/ @@ -1082,7 +1082,7 @@ static void AMT630H_GUI_Clock_Setting(uint8_t Clock_Hour, uint8_t Clock_Min, uin ; } /*Digital changes*/ - //Menu_Logic_Operation_Clock_Hour_Bit_Set(Menu_Key_en_t enKeyType); + Menu_Logic_Operation_Clock_Hour_Bit_Set(MENU_KEY_CONFIRM_SHORT); break; case MENU_ITEM_CLOCK_MIN_TENB_SET: /*Cursor blinking*/ @@ -1095,7 +1095,7 @@ static void AMT630H_GUI_Clock_Setting(uint8_t Clock_Hour, uint8_t Clock_Min, uin ; } /*Digital changes*/ - //Menu_Logic_Operation_Clock_Min_Tenb_Set(Menu_Key_en_t enKeyType); + Menu_Logic_Operation_Clock_Min_Tenb_Set(MENU_KEY_CONFIRM_SHORT); break; case MENU_ITEM_CLOCK_MIN_BIT_SET: /*Cursor blinking*/ @@ -1108,7 +1108,7 @@ static void AMT630H_GUI_Clock_Setting(uint8_t Clock_Hour, uint8_t Clock_Min, uin ; } /*Digital changes*/ - //Menu_Logic_Operation_Clock_Min_Bit_Set(Menu_Key_en_t enKeyType); + Menu_Logic_Operation_Clock_Min_Bit_Set(MENU_KEY_CONFIRM_SHORT); break; default: break; @@ -3403,7 +3403,7 @@ static void AMT630H_GUI_Trip(uint32_t Trip, uint8_t Uint) } } } - else if(g_u8Display_Mode == ModeDAY) + else if(g_u8Display_Mode == ModeNIGHT) { SetPagePic(GRAPHICS_PAGE_0, Pic_0685_48_272); SetPagePic(GRAPHICS_PAGE_0, Pic_0864_54_297);/*TRIPå›¾æ ‡*/ diff --git a/Firmware/Source/Component/Menu/Menu_Interface.c b/Firmware/Source/Component/Menu/Menu_Interface.c index fcc3a863bb9ee6372569e44420282f5e2f58aed3..f1e8320c7629d2dd468751672b0cb7c1039b87e6 100644 --- a/Firmware/Source/Component/Menu/Menu_Interface.c +++ b/Firmware/Source/Component/Menu/Menu_Interface.c @@ -65,6 +65,10 @@ void Menu_User_Init(void) Menu_Init_st.enMenuItemLen = MENU_ITEM_MAX; Menu_Init_st.uintMenuConfig = 0x0001; Menu_Init_st.uintMenuCursorMemoryDepth = 0; + Menu_Item_Select_Set(MENU_ITEM_SELECT_DAYTIME, 1); + Menu_Item_Select_Set(MENU_ITEM_BACKLIGHT_4, 1); + Menu_Item_Select_Set(MENU_ITEM_UNIT_KM, 1); + Menu_Item_Select_Set(MENU_ITEM_LANGUAGE_CHINESE, 1); Menu_Init((uint8_t *)u8MenuRamData, (Menu_Item_Attribute_st_t *)stMenuItemAttribute, (Menu_Init_st_t *)&Menu_Init_st); } @@ -76,6 +80,10 @@ void Menu_User_WAKEUP(void) Menu_Init_st.enMenuItemLen = MENU_ITEM_MAX; Menu_Init_st.uintMenuConfig = 0x0001; Menu_Init_st.uintMenuCursorMemoryDepth = 0; + Menu_Item_Select_Set(MENU_ITEM_SELECT_DAYTIME, 1); + Menu_Item_Select_Set(MENU_ITEM_BACKLIGHT_4, 1); + Menu_Item_Select_Set(MENU_ITEM_UNIT_KM, 1); + Menu_Item_Select_Set(MENU_ITEM_LANGUAGE_CHINESE, 1); Menu_Wake_Up_Init((uint8_t *)u8MenuRamData, (Menu_Item_Attribute_st_t *)stMenuItemAttribute, (Menu_Init_st_t *)&Menu_Init_st); } @@ -326,12 +334,15 @@ void Menu_Logic_Operation_Bluetooth_Back(Menu_Key_en_t enKeyType) void Menu_Logic_Operation_Clock_Hour_Tenb(Menu_Key_en_t enKeyType) { - // counter_val.time.RTC_Hours = (MenuData.Dis_Hour_Tenb*10 + MenuData.Dis_Hour_Bit); - // counter_val.time.RTC_Minutes = (MenuData.Dis_Minute_Tenb*10 + MenuData.Dis_Minute_Bit); - // if(MENU_KEY_CONFIRM_SHORT == enKeyType) - // { - // RTC_SetTime(&counter_val.time); - // } + RTE_RTC_Get_CounterValue(&counter_val); + counter_val.time.RTC_Hours = RTC_Bcd2ToByte(counter_val.time.RTC_Hours); + counter_val.time.RTC_Minutes = RTC_Bcd2ToByte(counter_val.time.RTC_Minutes); + + MenuData.Dis_Hour_Tenb = counter_val.time.RTC_Hours / 10; + MenuData.Dis_Hour_Bit = counter_val.time.RTC_Hours % 10; + + MenuData.Dis_Minute_Tenb = counter_val.time.RTC_Minutes / 10; + MenuData.Dis_Minute_Bit = counter_val.time.RTC_Minutes % 10; } void Menu_Logic_Operation_Clock_Hour_Bit(Menu_Key_en_t enKeyType) @@ -371,11 +382,7 @@ void Menu_Logic_Operation_Clock_Hour_Tenb_Set(Menu_Key_en_t enKeyType) uint8_t updataDir = 0u; uint8_t datmax = 0u; uint8_t datmin = 0u; - // RTE_RTC_Get_CounterValue(&counter_val); - // counter_val.time.RTC_Hours = RTC_Bcd2ToByte(counter_val.time.RTC_Hours); - // counter_val.time.RTC_Minutes = RTC_Bcd2ToByte(counter_val.time.RTC_Minutes); - - // MenuData.Dis_Hour_Tenb = counter_val.time.RTC_Hours / 10; + if(enKeyType == MENU_KEY_DOWN_SHORT) { diff --git a/Firmware/Source/Component/PowerManagement/PowerManag_user.c b/Firmware/Source/Component/PowerManagement/PowerManag_user.c index 61f270fb692630525998c7c84a3b260d6667fb83..f84af4c3a13306cffade80945d07d1aa63a5e31c 100644 --- a/Firmware/Source/Component/PowerManagement/PowerManag_user.c +++ b/Firmware/Source/Component/PowerManagement/PowerManag_user.c @@ -68,6 +68,7 @@ static void Power_KL30_Init(void) Menu_User_Init(); Can_Init(); Protocol_KL30_Wakeup_Init(); + TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, 100); RTE_DEEPSLEEP_GPIO_Interrupt_Enable(KL15_AD_IN, Trigger_Rising); FaultCode_Init(); } @@ -110,7 +111,7 @@ static void Power_OVP_Init(void) static void Power_IG_OFF_Init(void) { Line_In_KL15_OFF_Init(); - RTE_GPIO_Set_Level(Blacklight_PWM, 0); + TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, 0); } static void Power_IG_ON_Init(void) @@ -168,18 +169,10 @@ static Power_Status_em Power_Stay_OFF(void) } else { - if ((Common_GetIgnOffTime() < 1000)) + if ((Common_GetIgnOffTime() < 20000)) { u8PowerSts = EM_IGN_OFF; } - else - { - //igoff大于1s且下15电æ‰è¿›ä¼‘çœ ,å¦åˆ™ä¸€ç›´ä¿æŒåœ¨igoffçŠ¶æ€ - //if(Sys_Read_KL15_Voltage() < 5000) - { - u8PowerSts = EM_IGN_Sleep_Init; - } - } } return u8PowerSts; @@ -195,7 +188,7 @@ static Power_Status_em Power_Stay_Protect(void) /* 关闿‰€æœ‰å¤–设,åªä¿ç•™AD采集,电æºçжæ€åˆ‡ï¿½? */ { TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, 0); - CAN_TX_SetEnable(&CAN_CH0_CanMsgTxOp, CAN_N_TX_Disable); + //CAN_TX_SetEnable(&CAN_CH0_CanMsgTxOp, CAN_N_TX_Disable); } u8PowerSts = EM_IGN_OFF_Init; /* ç”µæºæ¨¡å¼æ£å¸¸ */ @@ -208,15 +201,10 @@ static Power_Status_em Power_Stay_Protect(void) if ( SYS_OPR_STAT_RUN ) { - CAN_TX_SetEnable(&CAN_CH0_CanMsgTxOp, CAN_N_TX_Enable); + //CAN_TX_SetEnable(&CAN_CH0_CanMsgTxOp, CAN_N_TX_Enable); return u8PowerSts; } - //进入异常电压,电æºåº“里直接将15电ç‰äºŽ0,则直接退出,çŠ¶æ€æ˜¯igoff,下15åˆ™è¿›å…¥ä¼‘çœ - // if ( SYS_OPR_STAT_IGN_OFF ) - // { - // break; - // } } } diff --git a/Firmware/Source/Device/Cmsemicon/BAT32A279/RTE/TrmerM/TrmerM.c b/Firmware/Source/Device/Cmsemicon/BAT32A279/RTE/TrmerM/TrmerM.c index 67c2e9833fa2e0818dd0128b8a4cd6feb2cf5acd..aae070bc0dc35ae03a96c51a101b70d7e8e0a593 100644 --- a/Firmware/Source/Device/Cmsemicon/BAT32A279/RTE/TrmerM/TrmerM.c +++ b/Firmware/Source/Device/Cmsemicon/BAT32A279/RTE/TrmerM/TrmerM.c @@ -1,7 +1,7 @@ /* * TrmerM.c * - * Created on: 2024å¹´2月21æ—¥ + * Created on: 2024�?2�?21�? */ #include <stdint.h> // #include "gpio.h" @@ -25,21 +25,21 @@ typedef struct // /*å 空比精度åƒåˆ†ä¹‹ä¸€*/ // extern void TimerB_PWM_Channel_Duty_Set(TIMERB_Channel_en_t enTimerBChannel, uint16_t u16Duty); // extern void TimerB_PWM_Channel_Start(TIMERB_Channel_en_t enTimerBChannel); -// /*调用该函数åŽï¼Œä»…釿–°è°ƒç”¨å¼€å§‹å‡½æ•°åŠŸèƒ½å³å¯æ£å¸¸ä½¿ç”¨*/ +// /*调用该函数åŽï¼Œä»…釿–°è°ƒç”¨å¼€å§‹å‡½æ•°åŠŸèƒ½å³å¯æ£å¸¸ä½¿ï¿½?*/ // extern void TimerB_PWM_Channel_Stop(TIMERB_Channel_en_t enTimerBChannel); -// /*ä»…ä¼‘çœ æ—¶å¯è°ƒç”¨ï¼Œè°ƒç”¨è¯¥å‡½æ•°åŽéœ€è¦é‡æ–°åˆå§‹åŒ–ç›¸å…³é€šé“æ‰å¯ä»¥æ£å¸¸ä½¿ç”¨ã€‚*/ +// /*ä»…ä¼‘çœ æ—¶å¯è°ƒç”¨ï¼Œè°ƒç”¨è¯¥å‡½æ•°åŽéœ€è¦é‡æ–°åˆå§‹åŒ–ç›¸å…³é€šé“æ‰å¯ä»¥æ£å¸¸ä½¿ç”¨ï¿½?*/ // extern void TimerB_PWM_Channel_Sleep(TIMERB_Channel_en_t enTimerBChannel); TMM_InitTypeDef TIMM_InitStructure[2] = {0}; -static uint32_t cycle_pulse[2]; //一个周期的时钟数 //频率 -static uint32_t high_level_Pulse[2][3]; //高电平时钟数 //å 空比 +static uint32_t cycle_pulse[2]; //一个周期的时钟�? //频率 +static uint32_t high_level_Pulse[2][3]; //高电平时钟数 //å 空�? static uint32_t pwm_duty[2][3]; /** * @brief 设置TimerM的定时器x的模å¼ä¸ºæ¯”较输出 * - * @param counter 定时器 + * @param counter 定时�? * @param freq 比较输出频率 * @return uint8_t 返回0æˆåŠŸï¼Œéž0失败 */ @@ -48,20 +48,32 @@ uint8_t TimerM_PWM_counter_Output_Init(TIMERM_PWM_Counter_en_t counter, uint16_t if (counter == TIMERM_COUNTER0) { TIMM_InitStructure[counter].TMM_Select = TMM0; + + TIMM_InitStructure[counter].TMM_Channel = TMM_Channel_A|TMM_Channel_B|TMM_Channel_C|TMM_Channel_D; + TIMM_InitStructure[counter].TMM_Mode = TMM_Mode_PWM; + TIMM_InitStructure[counter].TMM_CounterClear = TM_Clear_Match_TMGRA; //when TM is matched with TMGRA, TM0 is cleared + TIMM_InitStructure[counter].TMM_Intp = TMM_Int_NONE; ///compare match interrupt enable A (IMIEA) + } else if (counter == TIMERM_COUNTER1) { TIMM_InitStructure[counter].TMM_Select = TMM1; + + TIMM_InitStructure[counter].TMM_Channel = TMM_Channel_A|TMM_Channel_B;//|TMM_Channel_C|TMM_Channel_D; + TIMM_InitStructure[counter].TMM_Mode = TMM_Mode_PWM; + TIMM_InitStructure[counter].TMM_CounterClear = TM_Clear_Match_TMGRA; //when TM is matched with TMGRA, TM0 is cleared + TIMM_InitStructure[counter].TMM_Intp = TMM_Int_NONE; ///compare match interrupt enable A (IMIEA) + } else { return 1; } - TIMM_InitStructure[counter].TMM_Channel = TMM_Channel_A|TMM_Channel_B|TMM_Channel_C|TMM_Channel_D; - TIMM_InitStructure[counter].TMM_Mode = TMM_Mode_PWM; - TIMM_InitStructure[counter].TMM_CounterClear = TM_Clear_Match_TMGRA; //when TM is matched with TMGRA, TM0 is cleared - TIMM_InitStructure[counter].TMM_Intp = TMM_Int_IMIA; ///compare match interrupt enable A (IMIEA) +// TIMM_InitStructure[counter].TMM_Channel = TMM_Channel_A|TMM_Channel_B|TMM_Channel_C|TMM_Channel_D; +// TIMM_InitStructure[counter].TMM_Mode = TMM_Mode_PWM; +// TIMM_InitStructure[counter].TMM_CounterClear = TM_Clear_Match_TMGRA; //when TM is matched with TMGRA, TM0 is cleared +// TIMM_InitStructure[counter].TMM_Intp = TMM_Int_IMIA; ///compare match interrupt enable A (IMIEA) if (freq > 2000) { @@ -83,7 +95,7 @@ uint8_t TimerM_PWM_counter_Output_Init(TIMERM_PWM_Counter_en_t counter, uint16_t return 1; } - TIMM_InitStructure[counter].TMM_CHA_Pulse = cycle_pulse[counter] & 0x0FFFF;//这里需è¦è®¡ç®—,调试下 period; //周期设置为period + TIMM_InitStructure[counter].TMM_CHA_Pulse = cycle_pulse[counter] & 0x0FFFF;//这里需è¦è®¡ç®—,调试�? period; //周期设置为period @@ -103,23 +115,34 @@ uint8_t TimerM_PWM_counter_Output_Init(TIMERM_PWM_Counter_en_t counter, uint16_t //uint8_t TimerM_PWM_counter_Output_Init(TIMERM_PWM_Counter_en_t counter, uint16_t freq)//, uint32_t PWM_Clock //SystemCoreClock //{ -// if (counter == TIMERM_COUNTER0) +// SystemCoreClock = 64000000UL; +// +// if (counter == TIMERM_COUNTER0) // { // TIMM_InitStructure[counter].TMM_Select = TMM0; +// +// TIMM_InitStructure[counter].TMM_Channel = TMM_Channel_B|TMM_Channel_C|TMM_Channel_D; +// TIMM_InitStructure[counter].TMM_Mode = TMM_Mode_PWM; +// TIMM_InitStructure[counter].TMM_CounterClear = TM_Clear_Match_TMGRA; //when TM is matched with TMGRA, TM0 is cleared +// TIMM_InitStructure[counter].TMM_Intp = TMM_Int_IMIA; ///compare match interrupt enable A (IMIEA) // } // else if (counter == TIMERM_COUNTER1) // { // TIMM_InitStructure[counter].TMM_Select = TMM1; +// TIMM_InitStructure[counter].TMM_Channel = TMM_Channel_B; +// TIMM_InitStructure[counter].TMM_Mode = TMM_Mode_PWM; +// TIMM_InitStructure[counter].TMM_CounterClear = TM_Clear_Match_TMGRA; //when TM is matched with TMGRA, TM0 is cleared +// TIMM_InitStructure[counter].TMM_Intp = TMM_Int_IMIA; ///compare match interrupt enable A (IMIEA) // } // else // { // return 1; // } // -// TIMM_InitStructure[counter].TMM_Channel = TMM_Channel_A|TMM_Channel_B|TMM_Channel_C|TMM_Channel_D; -// TIMM_InitStructure[counter].TMM_Mode = TMM_Mode_PWM; -// TIMM_InitStructure[counter].TMM_CounterClear = TM_Clear_Match_TMGRA; //when TM is matched with TMGRA, TM0 is cleared -// TIMM_InitStructure[counter].TMM_Intp = TMM_Int_IMIA; ///compare match interrupt enable A (IMIEA) +//// TIMM_InitStructure[counter].TMM_Channel = TMM_Channel_A|TMM_Channel_B|TMM_Channel_C|TMM_Channel_D; +//// TIMM_InitStructure[counter].TMM_Mode = TMM_Mode_PWM; +//// TIMM_InitStructure[counter].TMM_CounterClear = TM_Clear_Match_TMGRA; //when TM is matched with TMGRA, TM0 is cleared +//// TIMM_InitStructure[counter].TMM_Intp = TMM_Int_IMIA; ///compare match interrupt enable A (IMIEA) // // if (freq > 2000) // { @@ -141,7 +164,7 @@ uint8_t TimerM_PWM_counter_Output_Init(TIMERM_PWM_Counter_en_t counter, uint16_t // return 1; // } // -// TIMM_InitStructure[counter].TMM_CHA_Pulse = cycle_pulse[counter] & 0x0FFFF;//这里需è¦è®¡ç®—,调试下 period; //周期设置为period +// TIMM_InitStructure[counter].TMM_CHA_Pulse = cycle_pulse[counter] & 0x0FFFF;//这里需è¦è®¡ç®—,调试�? period; //周期设置为period // // // @@ -164,9 +187,9 @@ uint8_t TimerM_PWM_counter_Output_Init(TIMERM_PWM_Counter_en_t counter, uint16_t /** * @brief 设置timerM定时器x通é“xçš„å 空比 * - * @param counter 定时器 + * @param counter 定时�? * @param ch é€šé“ - * @param duty å 空比 xxxx/1000 åƒåˆ†ä¹‹ + * @param duty å 空�? xxxx/1000 åƒåˆ†ï¿½? * @param ActiveLevel 0è´Ÿå 空比 1æ£å 空比 * @return uint8_t 返回0æˆåŠŸï¼Œéž0失败 */ @@ -178,7 +201,7 @@ uint8_t TimerM_PWM_CH_Output_init(TIMERM_PWM_Counter_en_t counter, TIMERM_PWM_Ch switch (ch) { case TIMERM_CHB: - TIMM_InitStructure[counter].TMM_CHB_Pulse = ((cycle_pulse[counter]) ) & 0x0FFFF; //TM计数达到TMGRB. å 空比:duty2/period + TIMM_InitStructure[counter].TMM_CHB_Pulse = ((cycle_pulse[counter]) ) & 0x0FFFF; //TM计数达到TMGRB. å 空�?:duty2/period TIMM_InitStructure[counter].TMM_PWM.TMM_CHB.TMM_PWMInitLevel = TMM_PWMInitLevel_High; TIMM_InitStructure[counter].TMM_PWM.TMM_CHB.TMM_PWMActiveLevel = ActiveLevel; if (counter == TIMERM_COUNTER0) @@ -194,7 +217,7 @@ uint8_t TimerM_PWM_CH_Output_init(TIMERM_PWM_Counter_en_t counter, TIMERM_PWM_Ch break; case TIMERM_CHC: - TIMM_InitStructure[counter].TMM_CHC_Pulse = ((cycle_pulse[counter]) ) & 0x0FFFF; //TM计数达到TMGRC. å 空比:duty2/period + TIMM_InitStructure[counter].TMM_CHC_Pulse = ((cycle_pulse[counter]) ) & 0x0FFFF; //TM计数达到TMGRC. å 空�?:duty2/period TIMM_InitStructure[counter].TMM_PWM.TMM_CHC.TMM_PWMInitLevel = TMM_PWMInitLevel_High; TIMM_InitStructure[counter].TMM_PWM.TMM_CHC.TMM_PWMActiveLevel = ActiveLevel; if (counter == TIMERM_COUNTER0) @@ -209,7 +232,7 @@ uint8_t TimerM_PWM_CH_Output_init(TIMERM_PWM_Counter_en_t counter, TIMERM_PWM_Ch break; case TIMERM_CHD: - TIMM_InitStructure[counter].TMM_CHD_Pulse = ((cycle_pulse[counter]) ) & 0x0FFFF; //TM计数达到TMGRD. å 空比:duty3/period + TIMM_InitStructure[counter].TMM_CHD_Pulse = ((cycle_pulse[counter]) ) & 0x0FFFF; //TM计数达到TMGRD. å 空�?:duty3/period TIMM_InitStructure[counter].TMM_PWM.TMM_CHD.TMM_PWMInitLevel = TMM_PWMInitLevel_High;//TMM_PWMInitLevel_High;// TIMM_InitStructure[counter].TMM_PWM.TMM_CHD.TMM_PWMActiveLevel = ActiveLevel;//TMM_PWMActiveLevel_Low;//TMM_PWMActiveLevel_High;// if (counter == TIMERM_COUNTER0) @@ -264,7 +287,7 @@ extern void TMM1_Set_Counter(uint8_t ch,uint16_t value); * * @param counter 定时器x * @param ch 通é“x - * @param duty å 空比 åƒåˆ†ä¹‹ä¸€ + * @param duty å 空�? åƒåˆ†ä¹‹ä¸€ * @return uint8_t 返回0æˆåŠŸï¼Œéž0失败 */ uint8_t TimerM_PWM_set_duty(TIMERM_PWM_Counter_en_t counter, TIMERM_PWM_Channel_en_t ch, uint16_t duty ) @@ -302,11 +325,11 @@ uint8_t TimerM_PWM_set_duty(TIMERM_PWM_Counter_en_t counter, TIMERM_PWM_Channel_ * * @param counter 定时器x * @param freq PWM频率 - * @return uint8_t 0æˆåŠŸ éž0失败 + * @return uint8_t 0æˆåŠŸ �?0失败 * - * @note 频率范围有两ç§ï¼Œ50~2000 2001~最大,如果åˆå§‹è¯çš„é¢‘çŽ‡å’Œç›®æ ‡é¢‘çŽ‡åœ¨ä¸€ä¸ªåŒºé—´å¯ä»¥ä½¿ç”¨TimerM_PWM_set_freq2函数æ¥ä¼˜é›…的切æ¢é¢‘率, + * @note 频率范围有两ç§ï¼Œ50~2000 2001~最大,如果åˆå§‹è¯çš„é¢‘çŽ‡å’Œç›®æ ‡é¢‘çŽ‡åœ¨ä¸€ä¸ªåŒºé—´å¯ä»¥ä½¿ç”¨TimerM_PWM_set_freq2函数æ¥ä¼˜é›…的切æ¢é¢‘率�? * 如果ä¸åœ¨ä¸€ä¸ªé¢‘率区间就需è¦ä½¿ç”¨TimerM_PWM_set_freqæ¥ä¸ä¼˜é›…的切æ¢é¢‘率, - * å¦‚æžœçœ‹ä¸æ‡‚注释也使用TimerM_PWM_set_freqæ¥åˆ‡æ¢é¢‘率。 + * å¦‚æžœçœ‹ä¸æ‡‚注释也使用TimerM_PWM_set_freqæ¥åˆ‡æ¢é¢‘率�? */ uint8_t TimerM_PWM_set_freq(TIMERM_PWM_Counter_en_t counter, uint16_t freq ) { diff --git a/Firmware/Source/System/Sys_Task_List.c b/Firmware/Source/System/Sys_Task_List.c index f6845ed2b9ba6fdb6f79d26f6f2c47c368ba6495..28f3e463ed12c72eea9403442e773c1021f64519 100644 --- a/Firmware/Source/System/Sys_Task_List.c +++ b/Firmware/Source/System/Sys_Task_List.c @@ -5,6 +5,7 @@ #include "RTE.h" #include "UDS_ISO14229_Server.h" #include "FaultCode.h" +extern _Menu_Data MenuData; void Sys_Pseudo_Real_Time_Tasks(void) { @@ -54,17 +55,17 @@ void Sys_50ms_Tasks(void) g_u8Cursor_Posittion = Menu_Get_Current_Cursor_Information(); - // if((MenuData.Dis_Hour_Tenb*10 + MenuData.Dis_Hour_Bit) > 23) - // { - // MenuData.Dis_Hour_Tenb = 2; - // MenuData.Dis_Hour_Bit = 3; - // } + if((MenuData.Dis_Hour_Tenb*10 + MenuData.Dis_Hour_Bit) > 23) + { + MenuData.Dis_Hour_Tenb = 2; + MenuData.Dis_Hour_Bit = 3; + } - // if((MenuData.Dis_Minute_Tenb*10 + MenuData.Dis_Minute_Bit) > 59) - // { - // MenuData.Dis_Minute_Tenb = 5; - // MenuData.Dis_Minute_Bit = 9; - // } + if((MenuData.Dis_Minute_Tenb*10 + MenuData.Dis_Minute_Bit) > 59) + { + MenuData.Dis_Minute_Tenb = 5; + MenuData.Dis_Minute_Bit = 9; + } } uint32_t ODOtest = 0; @@ -83,6 +84,8 @@ void Sys_100ms_Tasks(void) //Data_Mileage_Clear(); RTE_GPIO_Config(RTE_GPIO_PORT05_PIN04, GpioOut_High); + BackLight_Process(); + //TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, 100); // aaa = Menu_Item_Select_Get(MENU_ITEM_SELECT_AUTO); }