for( ;; ){
putchar(65 + k); /* sends out a char to the USB port */
k=(k+1)%90;
vTaskDelay( 500 / portTICK_RATE_MS ); /* chars go out to USB only if I delete this line!! */
}
}
static void LedTask( void *pvParameters )
{
static uint8_t toggle = 0;
signed short temp;
for( ;; ){
if (toggle) {
GPIO_LOW(GPIOC,GPIO_Pin_1); //ORANGE lED
GPIO_LOW(GPIOC,GPIO_Pin_4); //BLUE LED
GPIO_HIGH(GPIOD,GPIO_Pin_2); //RED lED
} else {
GPIO_HIGH(GPIOC,GPIO_Pin_1);
GPIO_HIGH(GPIOC,GPIO_Pin_4);
GPIO_LOW(GPIOD,GPIO_Pin_2);
}
toggle = 1 - toggle;
vTaskDelay( 250 / portTICK_RATE_MS );
}
}
..in main I have:
int main(void)
{MainHWInit();
xTaskCreate( MTask, ( signed char * ) "MainTask", (configMINIMAL_STACK_SIZE * 2), NULL, M_TASK_PRIORITY, &xMemsTaskHandle);
xTaskCreate( LedTask, ( signed char * ) "LED", (configMINIMAL_STACK_SIZE * 2), NULL, Led_TASK_PRIORITY, &xLedTaskHandle);
/* Start the scheduler. */
vTaskStartScheduler();
/* we should never get here */
for( ;; );
}
The two tasks run with same priority, within my settings I have :