main.c 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. #include "sys.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "led.h"
  5. #include "relay.h"
  6. #include "pwm.h"
  7. #include <SIM_EEPROM.h>
  8. #include "All_define.h"
  9. #include "modbus.h"
  10. #include "lcd_task.h"
  11. #include "led_task.h"
  12. #include "key_task.h"
  13. #include "MB_RTU_task.h"
  14. #include "MB_RTU_deal_task.h"
  15. #include "relay_task.h"
  16. #define START_TASK_PRIO 1
  17. #define START_STK_SIZE 128
  18. TaskHandle_t StartTask_Handler;
  19. void start_task(void *pvParameters);
  20. #define LED_TASK_PRIO 2
  21. #define LED_STK_SIZE 256
  22. TaskHandle_t LEDTask_Handler;
  23. #define LCD_TASK_PRIO 3
  24. #define LCD_STK_SIZE 512
  25. TaskHandle_t LCDTask_Handler;
  26. #define KEY_TASK_PRIO 4
  27. #define KEY_STK_SIZE 512
  28. TaskHandle_t KEYTask_Handler;
  29. #define MB_RTU_TASK_PRIO 16
  30. #define MB_RTU_STK_SIZE 512
  31. TaskHandle_t MB_RTUTask_Handler;
  32. #define MB_RTU_deal_TASK_PRIO 8
  33. #define MB_RTU_deal_STK_SIZE 512
  34. TaskHandle_t MB_RTU_dealTask_Handler;
  35. #define Relay_TASK_PRIO 18
  36. #define Relay_STK_SIZE 512
  37. TaskHandle_t RELAYTask_Handler;
  38. void BSP_init(void )
  39. {
  40. MemData_init();
  41. delay_init();
  42. BSP_PWMOUT_Init();
  43. BSP_modbus(dis_page_param.face_plate_param.Device_BaudRate);
  44. Relay_Init();
  45. }
  46. int main(void)
  47. {
  48. NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);
  49. BSP_init();
  50. xTaskCreate((TaskFunction_t )start_task,
  51. (const char* )"start_task",
  52. (uint16_t )START_STK_SIZE,
  53. (void* )NULL,
  54. (UBaseType_t )START_TASK_PRIO,
  55. (TaskHandle_t* )&StartTask_Handler);
  56. vTaskStartScheduler();
  57. }
  58. QueueHandle_t MB_RTU_Rx_Queue;
  59. QueueHandle_t MB_RTU_Tx_Queue;
  60. SemaphoreHandle_t modebus_tx_semap;
  61. void start_task(void *pvParameters)
  62. {
  63. taskENTER_CRITICAL();
  64. MB_RTU_Rx_Queue=xQueueCreate(7,140);
  65. MB_RTU_Tx_Queue=xQueueCreate(7,140);
  66. modebus_tx_semap=xSemaphoreCreateBinary();
  67. xTaskCreate((TaskFunction_t )led_task,
  68. (const char* )"led_task",
  69. (uint16_t )LED_STK_SIZE,
  70. (void* )NULL,
  71. (UBaseType_t )LED_TASK_PRIO,
  72. (TaskHandle_t* )&LEDTask_Handler);
  73. xTaskCreate((TaskFunction_t )lcd_task,
  74. (const char* )"lcd_task",
  75. (uint16_t )LCD_STK_SIZE,
  76. (void* )NULL,
  77. (UBaseType_t )LCD_TASK_PRIO,
  78. (TaskHandle_t* )&LCDTask_Handler);
  79. xTaskCreate((TaskFunction_t )key_task,
  80. (const char* )"key_task",
  81. (uint16_t )KEY_STK_SIZE,
  82. (void* )NULL,
  83. (UBaseType_t )KEY_TASK_PRIO,
  84. (TaskHandle_t* )&KEYTask_Handler);
  85. xTaskCreate((TaskFunction_t )mb_rtu_task,
  86. (const char* )"mb_rtu_task",
  87. (uint16_t )MB_RTU_STK_SIZE,
  88. (void* )NULL,
  89. (UBaseType_t )MB_RTU_TASK_PRIO,
  90. (TaskHandle_t* )&MB_RTUTask_Handler);
  91. xTaskCreate((TaskFunction_t )mb_rtu_deal_task,
  92. (const char* )"mb_rtu_deal_task",
  93. (uint16_t )MB_RTU_deal_STK_SIZE,
  94. (void* )NULL,
  95. (UBaseType_t )MB_RTU_deal_TASK_PRIO,
  96. (TaskHandle_t* )&MB_RTU_dealTask_Handler);
  97. xTaskCreate((TaskFunction_t )relay_task,
  98. (const char* )"mb_rtu_deal_task",
  99. (uint16_t )Relay_TASK_PRIO,
  100. (void* )NULL,
  101. (UBaseType_t )Relay_STK_SIZE,
  102. (TaskHandle_t* )&RELAYTask_Handler);
  103. vTaskDelete(StartTask_Handler);
  104. taskEXIT_CRITICAL();
  105. }