123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202 |
- #include "led_task.h"
- #include "key.h"
- #include <SIM_EEPROM.h>
- #include "led.h"
- #include "modbus.h"
- #include "limits.h"
- #include "MB_RTU_deal_task.h"
- #include "All_define.h"
- #define KEY4_5_blink_TASK_PRIO 10
- #define KEY4_5_blink_STK_SIZE 128
- TaskHandle_t KEY4_5_blink_Handler;
- #define Change_baud_TASK_PRIO 10
- #define Change_baud_STK_SIZE 128
- TaskHandle_t Change_baud_Handler;
- u8 key_enable_flag[8] = {0};
- static u8 Lock_flag = 0;
- void KEY4_5_blink_task(void *pvParameters)
- {
- Lock_flag = 1;
- Press_Key_Set(3);
- while(!Get_key_value(4))
- {
- vTaskDelay(20);
- }
- Lock_flag = 0;
- vTaskDelete(KEY4_5_blink_Handler);
- }
- static u8 Change_baud_flag = 0;
- void Change_baud_task(void *pvParameters)
- {
- Change_baud_flag = 1;
- vTaskDelay(1000);
- BSP_modbus(dis_page_param.face_plate_param.Device_BaudRate);
- Change_baud_flag = 0;
- vTaskDelete(KEY4_5_blink_Handler);
- }
- void led_task(void *pvParameters)
- {
- uint32_t NotifyValue;
- BaseType_t err;
- TickType_t tstart = xTaskGetTickCount();
- u8 lcd_value = 0;
- u16 XM_time = 0;
- u16 X_time = 0;
- u8 Write_flag = 0;
- u8 Write_flag_time = 0;
- uint32_t Updeate_cnt = 0;
- while(1)
- {
- led_struct.lcd_pwm_value = (u8)(dis_page_param.face_plate_param.Env_Light);
- led_struct.led_pwm_value = (u8)(dis_page_param.face_plate_param.Led_Brightness &0x000f);
- if( (dis_page_param.face_plate_param.Led_Brightness & 0xFF00) != 0)
- {
- led_struct.led_low_off_flag = 1;
- }
- else
- {
- led_struct.led_low_off_flag = 0;
- }
- if(!dis_page_param.face_plate_param.Sleep_time_addr)
- {
- XM_time = 1500;
- }
- else if(dis_page_param.face_plate_param.Sleep_time_addr==15)
- {
- XM_time = 0;
- X_time = 0;
- }
- else
- {
- XM_time = dis_page_param.face_plate_param.Sleep_time_addr*3000;
- }
- err=xTaskNotifyWait((uint32_t )0x00,
- (uint32_t )ULONG_MAX,
- (uint32_t* )&NotifyValue,
- (TickType_t )10);
- if(err==pdPASS)
- {
- if((NotifyValue&KEY4_5_blink)!=0)
- {
- if(Lock_flag == 0)
- {
- taskENTER_CRITICAL();
- xTaskCreate((TaskFunction_t )KEY4_5_blink_task,
- (const char* )"KEY4_5_blink_task",
- (uint16_t )KEY4_5_blink_STK_SIZE,
- (void* )NULL,
- (UBaseType_t )KEY4_5_blink_TASK_PRIO,
- (TaskHandle_t* )&KEY4_5_blink_Handler);
- taskEXIT_CRITICAL();
- }
- }
- if((NotifyValue&Change_baud)!=0)
- {
- if(Change_baud_flag == 0)
- {
- taskENTER_CRITICAL();
- xTaskCreate((TaskFunction_t )Change_baud_task,
- (const char* )"Change_baud_task",
- (uint16_t )Change_baud_STK_SIZE,
- (void* )NULL,
- (UBaseType_t )Change_baud_TASK_PRIO,
- (TaskHandle_t* )&Change_baud_Handler);
- taskEXIT_CRITICAL();
- }
- }
- if((NotifyValue&Need_Write)!=0)
- {
- Write_flag = 1;
- }
- if((NotifyValue&Wake_up)!=0)
- {
- X_time = 0;
- }
- }
- if(Write_flag == 1)
- {
- printf("Write_flag_time %d \r\n",Write_flag_time);
- if(Write_flag_time++>=5)
- {
- MemData_check();
- MemData_write();
- Write_flag = 0;
- Write_flag_time = 0;
- }
- }
- if(XM_time != 0)
- {
- if(X_time < XM_time+1)
- {
- X_time ++;
- }
- }
-
- for(u8 i = 0;i < 8;i++)
- {
- if( !key_enable_flag[i])
- {
- if(!Get_key_value(i))
- {
- X_time = 0;
- Press_Key_Set(i);
- }
- else
- {
- if(X_time > XM_time)
- {
- Set_led_lum(0);
- }
- else if(i == 3 && (Lock_flag != 0))
- {
- continue;
- }
- else if(i == 1 &&dis_page_param.face_plate_param.Air_condition_switch == 1)
- {
- Press_Key_Set(i);
- }
- else if(i == 2 &&dis_page_param.face_plate_param.Floor_heating_switch == 1)
- {
- Press_Key_Set(i);
- }
- else if(i == 6 &&dis_page_param.face_plate_param.Fresh_air_switch == 1)
- {
- Press_Key_Set(i);
- }
- else
- {
- Press_Key_up_Set(i);
- }
- }
- }
-
-
- }
- if(lcd_value != led_struct.lcd_pwm_value)
- {
- lcd_value = led_struct.lcd_pwm_value;
- Set_LCD_lum(lcd_value);
- }
- Updeate_cnt++;
- uint8_t TempHumi_UpdateMode = (uint8_t )( (dis_page_param.face_plate_param.TempHumi_UpdateMode >> 8) &0xff);
- uint16_t update_time = (dis_page_param.face_plate_param.TempHumi_UpdateMode &0x00ff) * 10 *50;
- if(Updeate_cnt >= update_time)
- {
- Updeate_cnt = 0;
- if(TempHumi_UpdateMode == 0x01)
- {
- Real_Temp_data_Send();
- }
- else if(TempHumi_UpdateMode == 0x02)
- {
- Real_humi_data_Send();
- }
- else if(TempHumi_UpdateMode == 0x03)
- {
- Real_Temp_data_Send();
- Real_humi_data_Send();
- }
- }
- vTaskDelayUntil(&tstart,20);
- }
- }
|