void vBlinkRedLed(void* parameters) {
int a;
for(;;) {
HAL_GPIO_TogglePin(LD4_GPIO_Port,LD4_Pin); // Toggle red LED.
//vTaskDelay(250/portTICK_RATE_MS); // Delay 250mS.
for(a=0;a<2000000; a=a+1); // Delay ??? sec.
}
}
void vBlinkGreenLed(void* parameters) {
int a;
for(;;) {
HAL_GPIO_TogglePin(LD3_GPIO_Port,LD3_Pin); // Toggle green LED.
//vTaskDelay(500/portTICK_RATE_MS); // Delay 500mS.
for(a=0;a<1000000; a=a+1); // Delay ??? sec.
}
}
void vMainTask(void* parameters) {
// Initial.
xTaskCreate(vBlinkRedLed, "vBlinkRedLed", configMINIMAL_STACK_SIZE, NULL, 1, NULL);
xTaskCreate(vBlinkGreenLed, "vBlinkGreenLed", configMINIMAL_STACK_SIZE, NULL, 1, NULL);
// Run forever.
for(;;) {
}
// Below code should NOT be executed.
vTaskDelete(NULL); // To delete current task.
}
int main(void) {
...
// Create the main task and start scheduler if pass.
if(xTaskCreate(vMainTask,"vMainTask",configMINIMAL_STACK_SIZE,NULL,0,NULL)!=pdPASS) {
// Failed to create main task, to alert or do something...?
}
else {
// Start scheduler.
vTaskStartScheduler();
}
while(1);
...
}