Multiple Task就是将CPU时间平均分配(也可以是不平均分配)给多个Task,所以在程序中会有一个时间管理者,依照指定的时间对指定的Task服务,没有分配到时间的Task必需等候时间到来才能执行。
上面这个程序将TCC规划为62.Sms中断一次(系统振荡选用32.768kHz),所以Task每62.5ms会切换到下一个Task,也就是说每个Task都能够平均分享CPU的时间,这就是分时多任务的原理。至于中断程序部分不是必须的,可一情况决定是否要由TCC安排时间的管理。状态机(State Machine)是根据目前所在的State所产生的条件,来决定下一个状态,所以程序原理和上面这个例子大同小异,所不同的是,应该把标示为TASKn的Label视为一个单独的State,然后根据某些条件将最后面的JMP转移到另外一个State。在这里时间控制也不一定要用到,视需求决定。例如:
说明:如果INPUT=0的话,将由目前所在的TASK1转移到TASK3执行,否则状态转移到TASK2。
本文关键字:单片机 电脑-单片机-自动控制,电子学习 - 基础知识 - 电脑-单片机-自动控制
上一篇:AVR单片机学习程序(音乐合成)