大学生
最后登录1970-1-1
在线时间 小时
注册时间2015-5-8
|
发表于 2020-1-21 09:59:26
|
显示全部楼层
void TASK_KEY(void) --->按键采集任务
{
uint8_t Buffer[10];
while (1)
{
读按键按;
if (读到按键)
vTaskDelay(20 / portTICK_RATE_MS); //延时节拍20毫秒,去抖动
再次读取按键
if (读到按键)
{
填写消息队列格式
Buffer[0] = 1 ; //----------表示按键任务
Buffer[1] = 按键码;
xQueueSend(xQueue, (void *) &Buffer , portMAX_DELAY);
}
}
void TASK_AD(void) --->采样任务
{
uint8_t Buffer[10];
while (1)
{
采样;
填写消息队列格式
Buffer[0] = 2 ; //----------表示采样任务
Buffer[1] = 温度1;
Buffer[2] = 温度2;
xQueueSend(xQueue, (void *) &Buffer , portMAX_DELAY);
}
void TASK_DISP(void) --->显示任务
{
BaseType_t xStatus;
uint8_t disp_buffer[10];
while (1)
{
xStatus = xQueueReceive( xQueue, &disp_buffer, portMAX_DELAY );
if( xStatus == pdPASS )
{
switch (disp_buffer[0])
{
case 1:
从disp_buffer[1]中取出按键码并显示
break;
case 2:
从disp_buffer[1]中取出温度1;
从disp_buffer[2]中取出温度2;
显示温度
break;
}
}
} |
|