mirror of
https://github.com/No-Chicken/Power-Pico.git
synced 2026-04-03 13:02:36 +08:00
将ADC数据发送放到一个高优先级的任务中(之前是在终端中)
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
/* Private includes -----------------------------------------------------------*/
|
||||
//includes
|
||||
#include "adc.h"
|
||||
#include "user_TasksInit.h"
|
||||
#include "user_MessageTask.h"
|
||||
#include "usbd_cdc_if.h"
|
||||
@@ -16,11 +17,11 @@
|
||||
|
||||
|
||||
/**
|
||||
* @brief task for check the usart message
|
||||
* @brief task for receiving messages, such as USB update requests.
|
||||
* @param argument: Not used
|
||||
* @retval None
|
||||
*/
|
||||
void MessageTask(void *argument)
|
||||
void MessageReceiveTask(void *argument)
|
||||
{
|
||||
while(1)
|
||||
{
|
||||
@@ -40,3 +41,35 @@ void MessageTask(void *argument)
|
||||
osDelay(500);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief send adc data to PC via USB,
|
||||
* @param argument: Not used
|
||||
*/
|
||||
void MessageSendTask(void *argument)
|
||||
{
|
||||
uint32_t flags;
|
||||
while (1)
|
||||
{
|
||||
// 1. 等待两个标志中的任意一个 (osFlagsWaitAny)
|
||||
flags = osThreadFlagsWait(FLAG_ADC_HALF_READY | FLAG_ADC_FULL_READY,
|
||||
osFlagsWaitAny,
|
||||
osWaitForever);
|
||||
|
||||
// 2. 判断是不是出错了 (比如超时或者传参错误,通常返回值最高位会置1)
|
||||
if (flags & 0x80000000) {
|
||||
continue; // 错误处理
|
||||
}
|
||||
|
||||
// 3. 检查具体是哪个标志位被置位了,然后处理对应的数据
|
||||
if (flags & FLAG_ADC_HALF_READY)
|
||||
{
|
||||
Process_ADC_Chunk(&adc_raw_buffer[0][0], 0);
|
||||
}
|
||||
|
||||
if (flags & FLAG_ADC_FULL_READY)
|
||||
{
|
||||
Process_ADC_Chunk(&adc_raw_buffer[ADC_TIMES][0], 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user