参数:15814020404 微电脑控制,大屏幕中文显示,可拓展内存,可编辑4套程序,能定时、4分区管理、定曲播放,具有USB接口,内置收音功能,外控四路分区,功放电源/外设电源自动管理。(1) 构造1ms – 50ms的定时任务发生器。
通过启动定时器Timer1,并安装中断程序响应Timer1记数结束事件。Timer1的输入频率为1MHz,即时间分辨率为1us,若设置Timer1的分频值为1000,则定时中断间隔1ms,若设置为10000,则定时中断间隔为10ms。作为定时任务发生器,中断服务程序只需设置一个全局变量标志,而上层的应用程序则检查该全局变量标志,当标志被设置时就执行相应的定时任务并清除该标志。不建议设置小于1ms的定时间隔,因为这样会占用过多CPU开销。
有关Timer1定时中断程序的安装及应用,请在BC的IDE环境中打开光盘中software\drivers目录下的tmrdemo.prj,参阅相关的代码。
(2) 构造几百毫秒至一两秒的定时任务发生器
对构造这个时间量级的定时任务发生器,最好是加载软中断int 0x1C,每次系统定时中断将自动调用软中断int 0x1C,所以int 0x1C的定时间隔就是55ms(精确值为54.925ms)。在中断程序中可通过对一全局变量计数,来表示时间间隔,而上层应用程序则判断该全局变量计数值来决定是否执行定时任务,如设置计数阈值为18,表示1s时间间隔,注意当开始执行定时任务时,需把全局变量计数值清零。
BC集成开发环境的在线帮助中有关于如何加载int 0x1C的代码例程,可搜索关键词getvect或setvect,以打开相关的在线帮助窗口。
(3) 整点时间操作
这里所谓的整点时间操作是指每10秒、每5分钟、每小时等等这样的定时任务,可以通过简单的获取系统时间参数来判断是否执行定时任务。