请选择 进入手机版 | 继续访问电脑版
快捷导航
1 77

FreeRTOS的多任务

周芸羽 于 2017-12-15 11:48 发表在 [技术分享] [复制链接]

注册后可查看大图哦

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
参考网站:http://blog.csdn.net/zhzht19861011/article/details/50072033     3.7之后
                 3.12里的初始化调试串口不需要写
                 https://www.cnblogs.com/yangguang-it/p/7059790.html(关于优先级的)

xTaskCreate(①lightandscreen,②"Task3",③1024,④NULL,⑤1,⑥NULL);
                   ①:调用的函数名  ②:随便写的任务名  ③:堆栈大小
                   ④:参数   ⑤:优先级  ⑥:句柄
vTaskStartScheduler();//开启调度器


调用的函数要有参数,如:void light3_on(void* arg)
优先级相同可不设延时函数    vTaskDelay(100);

一开始一共设置了两个任务,亮灯和ADC控制LCD。
但是发现两个任务只能进行其中一个,如果能亮灯,屏幕就没有任何显示。屏幕能正常显示就不能亮灯。
后来吧中断去掉之后,就成功了。
emmm,应该是在ADC里的中断出的问题,程序进入中断之后,堆栈出问题了,然后操作系统上下文切换出问题。以至于另外一个任务无法执行。TAT

总结:我觉得RTOS操作系统中不能存在其它中断
Connecting & Messaging from Any.

共 1 个关于本帖的回复 最后回复于 2017-12-15 12:25

chinmel 版主 发表于 2017-12-15 12:25:04 | 显示全部楼层
NONONO
1. ADC太快
2. 进入中断,要告诉OS,因为系统要处理嵌套
3. 现象不一定是由OS本身引起的,需要调查

可以参考oboot代码中的中断。
Connecting & Messaging from Any.
举报 使用道具
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

推荐板块

精彩推荐

热门排行

明星用户

手机版|小黑屋|AnyMSG ( ©AnyMSG 2009 - 2017 · ICP备16009991号 )

GMT+8, 2019-2-16 19:01