11.12_2:优化了部分变量。

This commit is contained in:
2025-11-13 02:04:19 +08:00
parent 5c4ba1b3c6
commit 2891992946
5 changed files with 93 additions and 90 deletions

View File

@@ -10,11 +10,12 @@
#include "Relay.h"
/* <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һһ<D2BB><D2BB>Ӧ<EFBFBD><D3A6> */
TaskHandle_t xStateLedTaskHdlr;
TaskHandle_t xFanCtrlTaskHdlr;
TaskHandle_t xDht11TaskHdlr;
TaskHandle_t xLoRaToGateTskHdlr;
TaskHandle_t xLoRaMsgRecTskHdlr;
TaskHandle_t xTaskStateLedHdlr;
TaskHandle_t xTaskLedCtrlHdlr;
TaskHandle_t xTaskFanCtrlHdlr;
TaskHandle_t xTaskDht11Hdlr;
TaskHandle_t xTaskLoRaToGateHdlr;
TaskHandle_t xTaskLoRaMsgRecHdlr;
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>о<EFBFBD><D0BE><EFBFBD> */
QueueHandle_t xQueueTempHdlr;
@@ -22,34 +23,42 @@ QueueHandle_t xQueueHumiHdlr;
QueueHandle_t xQueueUsart3IrqHdlr;
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ź<EFBFBD><C5BA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
SemaphoreHandle_t xSemLedOnHandler;
SemaphoreHandle_t xSemLedOffHandler;
SemaphoreHandle_t xSemLedOnHdlr;
SemaphoreHandle_t xSemLedOffHdlr;
SemaphoreHandle_t xSemFanOnHdlr;
SemaphoreHandle_t xSemFanOffHdlr;
/* <20><>˸LED<45><44><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA>ָ<EFBFBD><EFBFBD><EBA3AC><EFBFBD><EFBFBD>NULL<4C><4C> */
void vStateLedTask(void *pvParameters)
void vTaskStateLed(void *pvParameters)
{
while(1)
{
// vPc13LedOn();
// vTaskDelay(1000);
// vPc13LedOff();
// vTaskDelay(1000);
if (xSemaphoreTake(xSemLedOnHandler, pdMS_TO_TICKS(10)) == pdTRUE)
vPc13LedOn();
vTaskDelay(1000);
vPc13LedOff();
vTaskDelay(1000);
}
}
void vTaskLedControl(void *pvParameters)
{
while (1)
{
/* code */
if (xSemaphoreTake(xSemLedOnHdlr, pdMS_TO_TICKS(10)) == pdTRUE)
{
vPc13LedOn();
xSemaphoreGive(xSemLedOnHandler);
} else if (xSemaphoreTake(xSemLedOffHandler, pdMS_TO_TICKS(10)) == pdTRUE)
xSemaphoreGive(xSemLedOnHdlr);
} else if (xSemaphoreTake(xSemLedOffHdlr, pdMS_TO_TICKS(10)) == pdTRUE)
{
/* code */
vPc13LedOff();
xSemaphoreGive(xSemLedOffHandler);
xSemaphoreGive(xSemLedOffHdlr);
}
}
}
void vFanControlTask(void *pvParameters)
void vTaskFanControl(void *pvParameters)
{
while (1)
{
@@ -65,12 +74,11 @@ void vFanControlTask(void *pvParameters)
}
}
void vDht11Task(void *pvParameters)
void vTaskDht11(void *pvParameters)
{
DHT11Data_t xDHT11Data;
/* <20><><EFBFBD>ݴ洢<DDB4><E6B4A2><EFBFBD>顣Ҫ<E9A1A3><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>в<EFBFBD><D0B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ô<EFBFBD>Сһһ<D2BB><D2BB>Ӧ<EFBFBD><D3A6> */
uint8_t ucSendTempData = 0;
uint8_t ucSendHumiData = 0;
uint8_t ucSendTempData = 0, ucSendHumiData = 0;
if (vDht11Init() != 0)
{
/* <20><>ʼ<EFBFBD><CABC>ʧ<EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
@@ -96,12 +104,9 @@ void vDht11Task(void *pvParameters)
}
}
void vLoRaToGatePktTask(void *pvParameters)
void vTaskLoRaToGatePkt(void *pvParameters)
{
uint8_t ucRecTempData = 0;
uint8_t ucRecHumiData = 0;
uint8_t testData = 0xAC;
uint8_t ledOff = 0xAD;
uint8_t ucRecTempData = 0, ucRecHumiData = 0;
/* <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ж<EFBFBD><D0B6>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD>ճɹ<D5B3> */
BaseType_t xQueueTempRetval, xQueueHumiRetval;
while (1)
@@ -123,20 +128,22 @@ void vLoRaToGatePktTask(void *pvParameters)
vUsart3SendArray(&ucRecTempData, 1);
vUsart3SendArray(&ucRecHumiData, 1);
}
if (xSemaphoreTake(xSemLedOnHandler, pdMS_TO_TICKS(10)) == pdTRUE)
if (xSemaphoreTake(xSemLedOnHdlr, pdMS_TO_TICKS(10)) == pdTRUE)
{
/* code */
vUsart3SendArray(&testData, 1);
} else if (xSemaphoreTake(xSemLedOffHandler, pdMS_TO_TICKS(10)) == pdTRUE)
vUsart3SendArray(&xLoRaExecutorID.ucIdLed, 1);
vUsart3SendArray(&xLoRaExecutorCommand.ucCommandOn, 1);
} else if (xSemaphoreTake(xSemLedOffHdlr, pdMS_TO_TICKS(10)) == pdTRUE)
{
/* code */
vUsart3SendArray(&ledOff, 1);
vUsart3SendArray(&xLoRaExecutorID.ucIdLed, 1);
vUsart3SendArray(&xLoRaExecutorCommand.ucCommandOff, 1);
}
vTaskDelay(1000);
vTaskDelay(500);
}
}
void vLoRaMsgRecTask(void *pvParameters)
void vTaskLoRaMsgRec(void *pvParameters)
{
uint8_t ucDataRecNodeId = 0, ucDataRecExeId = 0, ucDataRecExeSta = 0;
uint8_t ucRetvalQueueNodeId = 0, ucRetvalQueueExeId = 0, ucRetvalQueueExeSta = 0;
@@ -151,11 +158,11 @@ void vLoRaMsgRecTask(void *pvParameters)
if (xLoRaMsgProcess(ucDataRecNodeId, ucDataRecExeId, ucDataRecExeSta) == statusLedOn)
{
/* code */
xSemaphoreGive(xSemLedOnHandler);
xSemaphoreGive(xSemLedOnHdlr);
} else if (xLoRaMsgProcess(ucDataRecNodeId, ucDataRecExeId, ucDataRecExeSta) == statusLedOff)
{
/* code */
xSemaphoreGive(xSemLedOffHandler);
xSemaphoreGive(xSemLedOffHdlr);
} else if (xLoRaMsgProcess(ucDataRecNodeId, ucDataRecExeId, ucDataRecExeSta) == statusFanOn)
{
/* code */
@@ -173,41 +180,48 @@ void vLoRaMsgRecTask(void *pvParameters)
void vCreateTasksList(void)
{
/* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>񣬲<EFBFBD><F1A3ACB2><EFBFBD><EFBFBD>ֱ<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ơ<EFBFBD><C6A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֡<EFBFBD>ջ<EFBFBD><D5BB>С<EFBFBD><D0A1><EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><D8B2><EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
// xTaskCreate(
// (TaskFunction_t ) vTaskStateLed,
// (char * ) "TaskName_StateLed",
// (configSTACK_DEPTH_TYPE) 256,
// (void * ) NULL,
// (UBaseType_t ) 2,
// (TaskHandle_t * ) &xTaskStateLedHdlr);
xTaskCreate(
(TaskFunction_t ) vStateLedTask,
(char * ) "TaskName_StateLed",
(configSTACK_DEPTH_TYPE) 512,
(TaskFunction_t ) vTaskLedControl,
(char * ) "TaskName_LedControl",
(configSTACK_DEPTH_TYPE) 256,
(void * ) NULL,
(UBaseType_t ) 2,
(TaskHandle_t * ) &xStateLedTaskHdlr);
(TaskHandle_t * ) &xTaskLedCtrlHdlr);
xTaskCreate(
(TaskFunction_t ) vFanControlTask,
(TaskFunction_t ) vTaskFanControl,
(char * ) "TaskName_FanControl",
(configSTACK_DEPTH_TYPE) 256,
(void * ) NULL,
(UBaseType_t ) 2,
(TaskHandle_t * ) &xFanCtrlTaskHdlr);
(TaskHandle_t * ) &xTaskFanCtrlHdlr);
xTaskCreate(
(TaskFunction_t ) vDht11Task,
(TaskFunction_t ) vTaskDht11,
(char * ) "TaskName_DHT11",
(configSTACK_DEPTH_TYPE) 512,
(void * ) NULL,
(UBaseType_t ) 2,
(TaskHandle_t * ) &xDht11TaskHdlr);
(TaskHandle_t * ) &xTaskDht11Hdlr);
xTaskCreate(
(TaskFunction_t ) vLoRaToGatePktTask,
(TaskFunction_t ) vTaskLoRaToGatePkt,
(char * ) "TaskName_LoRaSendToGateway",
(configSTACK_DEPTH_TYPE) 512,
(void * ) NULL,
(UBaseType_t ) 2,
(TaskHandle_t * ) &xLoRaToGateTskHdlr);
(TaskHandle_t * ) &xTaskLoRaToGateHdlr);
xTaskCreate(
(TaskFunction_t ) vLoRaMsgRecTask,
(TaskFunction_t ) vTaskLoRaMsgRec,
(char * ) "TaskName_LoRaReceivedMessage",
(configSTACK_DEPTH_TYPE) 512,
(void * ) NULL,
(UBaseType_t ) 2,
(TaskHandle_t * ) &xLoRaMsgRecTskHdlr);
(TaskHandle_t * ) &xTaskLoRaMsgRecHdlr);
}
void vCreateQueuesList(void)
@@ -231,10 +245,10 @@ void vCreateQueuesList(void)
}
}
void vCreateSemaphoreList(void)
void vCreateSemaphoresList(void)
{
xSemLedOnHandler = xSemaphoreCreateBinary();
xSemLedOffHandler = xSemaphoreCreateBinary();
xSemLedOnHdlr = xSemaphoreCreateBinary();
xSemLedOffHdlr = xSemaphoreCreateBinary();
xSemFanOnHdlr = xSemaphoreCreateBinary();
xSemFanOffHdlr = xSemaphoreCreateBinary();
}
@@ -246,7 +260,7 @@ int main(void)
vPc13LedInit();
vUsart3Init(115200);
vCreateQueuesList();
vCreateSemaphoreList();
vCreateSemaphoresList();
vCreateTasksList();
vTaskStartScheduler();
while(1)