|
楼主 |
发表于 2014-11-15 22:48:03
|
显示全部楼层
使用要点:
1、任务中不能使用switch 语句(因为任务框架使用switch实现的),但是可以在任务调用的函数中使用
2、任务中定义的变量一定要是静态变量(static),但是可以在任务调用的函数中使用局部变量.
3、每个任务一定要有 延时SCHCurTaskDly()或者 SCHCurTaskPend();
4、要在启动任务调度之前建立好所有的任务
且不能使用局部变量的原因是任务在调用延时,或等待消息命令时,任务会返回,则局部变量值可能会改变,下次进来继续使用局部变量值就会出错.
由此可知只要保证在任务中,局部变量在使用前要赋值,铕一次性运行直到得出结果再调用延时或等待消息命令,则也可以使用局部变量,如果这段话看不懂,任务中就直接使用静态变量.
另: 新版本有初始化定时计数器.
问: 任务的优先级怎么确定的,跟任务创建的先后有关?
答:如你有两儿子,长子的优先级高(因为他先出生),当每次你买好吃的东西回来后,都会先问下长子,是否要吃,之后才轮到次子.所以不管你买的东西是否有多份,长子如果想吃都能吃得到.
任务创建先后顺序优先级,就如长次了出生先后的优先级.
|
|