Мигание светодиодном (PC2) на Atmega с помощью FreeRTOS - простейший пример
portSHORT main(void)
{
xTaskCreate( vLEDFlashTask1, ( signed char * ) "LED", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL );
vTaskStartScheduler(); //start scheduler
//you should never get here
while(1);
}
О функции vTaskDelayUntil() на примере.
Эта задача должна выполняться точно каждые 250 миллисекунд. Как и
в функции vTaskDelay(), время измеряется в тиках, и константа
portTICK_RATE_MS используется для преобразования миллисекунд в тики.
Переменная xLastWakeTime автоматически обновляется внутри функции
vTaskDelayUntil(), и нигде явно в коде задачи переменная xLastWakeTime
не обновляется. */
vTaskDelayUntil( &xLastWakeTime, ( 250 / portTICK_RATE_MS ) );
|