完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
照着原子的freertos移植到另外一块板子,开两个任务,其中只能运行一个。[AppleScript] 纯文本查看 复制代码
#define START_TASK_PRIO 1#define START_STK_SIZE 128TaskHandle_t StartTask_Handler;void start_task(void *pvParameters);#define LED1_TASK_PRIO 2#define LED1_STK_SIZE 100TaskHandle_t LED1Task_Handler;void led1_task(void *pvParameters);#define LED2_TASK_PRIO 3#define LED2_STK_SIZE 100TaskHandle_t LED2Task_Handler;void led2_task(void *pvParameters); [AppleScript] 纯文本查看 复制代码 //创建开始任务 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(); //开启任务调度 [AppleScript] 纯文本查看 复制代码 //开始任务任务函数void start_task(void *pvParameters){ taskENTER_CRITICAL(); //进入临界区 //创建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); //创建LED2任务 xTaskCreate((TaskFunction_t )led2_task, (const char* )"led2_task", (uint16_t )LED2_STK_SIZE, (void* )NULL, (UBaseType_t )LED2_TASK_PRIO, (TaskHandle_t* )&LED2Task_Handler); vTaskDelete(StartTask_Handler); //删除开始任务 taskEXIT_CRITICAL(); //退出临界区} 任务函数就是LED闪亮,就只有一个LED闪。 |
|
相关推荐
8个回答
|
|
找到问题了,自己移植原子的,没用的sys文件,函数调度出现问题了,后面改用FreeRTOS的sysTick就正常了。
|
|
|
|
检查你的任务都有没有创建成功!
|
|
|
|
怎么检查,我发现把优先级换一下,就是把2换3,把3的换2,另外一个灯就闪了,就是有一个不闪。
|
|
|
|
[AppleScript] 纯文本查看 复制代码
//LED1任务函数void led1_task(void *pvParameters){ while(1) {// HAL_GPIO_TogglePin(LED2_GPIO_PORT, LED2_PIN);// HAL_Delay(200); HAL_GPIO_TogglePin(LED3_GPIO_PORT, LED3_PIN); HAL_Delay(200); }}//LED2任务函数 void led2_task(void *pvParameters){ while(1) { HAL_GPIO_TogglePin(LED1_GPIO_PORT, LED1_PIN); HAL_Delay(200); HAL_GPIO_TogglePin(LED2_GPIO_PORT, LED2_PIN); HAL_Delay(200); }} |
|
|
|
不能用HAL_Delay(200);这个吧。应该用freeRTOS系统带的延时函数.
|
|
|
|
是的,要使用vTaskDelay(),你用的是什么开发板?怎么还有LED3,我的开发板只有LED0,LED1
|
|
|
|
我的是L496ZG,我不用那几个延时,还是不行的,还没找到问题。我再看看
|
|
|
|
你这没有任务阻塞时间,优先级有事不同的肯定只能执行高优先级的那个呀,
|
|
|
|
只有小组成员才能发言,加入小组>>
800 浏览 0 评论
1156 浏览 1 评论
2531 浏览 5 评论
2863 浏览 9 评论
移植了freeRTOS到STMf103之后显示没有定义的原因?
2714 浏览 6 评论
keil5中manage run-time environment怎么是灰色,不可以操作吗?
1092浏览 3评论
197浏览 2评论
463浏览 2评论
376浏览 2评论
M0518 PWM的电压输出只有2V左右,没有3.3V是怎么回事?
458浏览 1评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 12:45 , Processed in 1.141457 second(s), Total 64, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号