在线时间27 小时
UID3424147
注册时间2017-9-18
NXP金币28
TA的每日心情 | 郁闷 2021-1-26 11:20 |
---|
签到天数: 5 天 连续签到: 1 天 [LV.2]偶尔看看I
中级会员
 
- 积分
- 249
- 最后登录
- 2024-7-22
|
本帖最后由 super大钢 于 2017-9-30 21:32 编辑
- #define configMINIMAL_STACK_SIZE<span class="Apple-tab-span" style="white-space:pre"> </span>( ( unsigned short ) 100 )
复制代码- /*LED1 Task*/
- void vLED1Task( void *pvParameters )
- {
- while(1)
- {
- LED0_Off();
- vTaskDelay( 200/portTICK_RATE_MS );
- LED0_On();
- vTaskDelay( 200/portTICK_RATE_MS );
-
- // LED0_Off();
- // delayx(500);
- // LED0_On();
- // delayx(500);
- }
- }
- /*LED2 Task*/
- void vLED2Task( void *pvParameters )
- {
- for(;;)
- {
- LED1_Off();
- vTaskDelay( 1000/portTICK_RATE_MS );
- LED1_On();
- vTaskDelay( 1000/portTICK_RATE_MS );
-
- }
-
- }
- int main (void)
- {
- sysinit();
- LED0_Init(); //red led
- LED1_Init(); //green led
- LED2_Init(); //blue led
-
- LED0_Off();
- LED1_Off();
- LED2_Off();
- /*Creat Task1*/
- xTaskCreate( vLED1Task,
- "LED1",
- configMINIMAL_STACK_SIZE,
- NULL,
- 4,
- NULL );
-
-
- /*Creat Task2*/
- xTaskCreate( vLED2Task,
- "LED2",
- configMINIMAL_STACK_SIZE,
- NULL,
- 3,
- NULL );
-
-
-
-
- /*Start Task*/
- vTaskStartScheduler();
- for (;;);
- }
复制代码
这里的现象是LED0保持长亮,除此之外LED1没有任何反应。如果我把LED0_OFF和LED0_ON在程序中反过来,现象是LED0长灭
貌似是这个任务只执行一次就再也没进去了,但是!请看下面!如果我把LED0里面的程序换成这样:
LED0_Off();
delayx(500);
LED0_On();
delayx(500);
(delayx是最普通的延时函数)
LED0又能闪烁了
那么问题是否出在时间片上,任务无法切换?
不知哪位高手玩过freertos,感谢您能帮我解答!
|
|