我正在使用帶有Codewarrior 10.6軟件的Freescale FRDM-KL25Z板。我的目標是在FreeRTOS中製作一個小程序,它通過模擬/數字轉換器(0-3,3v)從熱敏電阻讀取電壓,並取決於這個電壓,我想打開/關閉LED二極管。它一直工作到現在,當時我添加了第二項任務和隊列。我認爲這個問題可能是堆棧大小,但我不知道如何配置它。FreeRTOS中的隊列
代碼如下:
xQueueHandle queue_led;
void TaskLed (void *p)
{
uint16_t temp_val;
xQueueReceive(queue_led, &temp_val, 1);
if (temp_val<60000)
{
LED_1_Neg();
}
}
void TaskTemp (void *p)
{
uint16_t temp_val;
(void)AD1_Measure(TRUE);
(void)AD1_GetValue16(&temp_val);
xQueueSendToBack(queue_led, &temp_val, 1000);
FRTOS1_vTaskDelay(1000);
}
代碼在main():
xTaskCreate(TaskLed, (signed char *)"tl", 200, NULL, 1, NULL);
xTaskCreate(TaskTemp, (signed char *)"tt", 200, NULL, 1, NULL);
vTaskStartScheduler();
return(0);