完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
移植FreeRTos后,参建开始任务后,不能进入滴答定时器中断,同时也不能进入其他函数。屏蔽后,可以进入滴答定时器中断。
//任务优先级 #define START_TASK_PRIO 1 //任务堆栈大小 #define START_STK_SIZE 128 //任务句柄 TaskHandle_t StartTask_Handler; //任务函数 void start_task(void *pvParameters); //任务优先级 #define LED0_TASK_PRIO 2 //任务堆栈大小 #define LED0_STK_SIZE 50 //任务句柄 TaskHandle_t LED0Task_Handler; //任务函数 void led0_task(void *pvParameters); //任务优先级 #define LED1_TASK_PRIO 3 //任务堆栈大小 #define LED1_STK_SIZE 50 //任务句柄 TaskHandle_t LED1Task_Handler; //任务函数 void led1_task(void *pvParameters); int main(void) { NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);//设置系统中断优先级分组4 LED_Init(); //初始化LED delay_init(50); //延时函数初始化 RS232_SET_Init(25,9600); //RS232_printf("nihaorn"); //uart_init(115200); //初始化串口 //创建开始任务 xTaskCreate((TaskFunction_t )start_task, //任务函数 (const char* )"start_task", //任务名称 (uint16_t )START_STK_SIZE, //任务堆栈大小 (void* )NULL, //传递给任务函数的参数 (UBaseType_t )START_TASK_PRIO, //任务优先级 (TaskHandle_t* )&StartTask_Handler); //任务句柄 vTaskStartScheduler(); //开启任务调度 } //开始任务任务函数 void start_task(void *pvParameters) { taskENTER_CRITICAL(); //进入临界区 //创建LED0任务 xTaskCreate((TaskFunction_t )led0_task, (const char* )"led0_task", (uint16_t )LED0_STK_SIZE, (void* )NULL, (UBaseType_t )LED0_TASK_PRIO, (TaskHandle_t* )&LED0Task_Handler); //创建LED1任务 xTaskCreate((TaskFunction_t )led1_task, (const char* )"led1_task", (uint16_t )LED1_STK_SIZE, (void* )NULL, (UBaseType_t )LED1_TASK_PRIO, (TaskHandle_t* )&LED1Task_Handler); vTaskDelete(StartTask_Handler); //删除开始任务 taskEXIT_CRITICAL(); //退出临界区 } //LED0任务函数 void led0_task(void *pvParameters) { while(1) { LED0=~LED0; vTaskDelay(500); LED0=1; } } //LED1任务函数 void led1_task(void *pvParameters) { while(1) { /* LED1=0; vTaskDelay(200); LED1=1; vTaskDelay(800);*/ LED1 =1; } } |
|
相关推荐
5个回答
|
|
已解决。但是现在能进入start_task(),进不了led0_task()和led1_task()
|
|
|
|
我也遇到同样的问题 移植后 不能任务调度 LED1和LED2不能切换
|
|
|
|
你的浮点测试任务能执行吗?我的浮点 测试任务能执行,灯不切换,灯显示是绿色
|
|
|
|
这是动态内存创建任务的方法,很可能是你的动态内存函数相关问题(没有SDRAM或者RAM没有初始化堆)导致的。试试用静态任务创建方法。
|
|
|
|
如果不想用静态方式,用动态的方式就需要把configTOTAL_HEAP_SIZE 配置的大一些,不然任务不能成功创建。
|
|
|
|
只有小组成员才能发言,加入小组>>
809 浏览 0 评论
1161 浏览 1 评论
2535 浏览 5 评论
2871 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2719 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1100浏览 3评论
198浏览 2评论
464浏览 2评论
378浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
459浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 08:58 , Processed in 1.382611 second(s), Total 58, Slave 49 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号