单片机定时器重载初值可以用这种办法
单片机定时器的初值设置将会对整体系统的时间控制产生直接影响,需要工程师们谨慎对待。
但是在实际工作中,常常会遇到继续定时的情况,那幺有没有一种能够在中断处理程序中帮助单片机定时器继续定时的技术呢?本文将会为大家介绍一种能够让定时器重载初值的技术,大家一起看过来吧。
通常来说,在设置单片机定时器第一次初值启动定时器后,则定时器就已经开始计数了。
如果定时器中断处于开放状态,当定时器的时间计满之后,系统将会自动引发定时中断(注意,T0中断的入口地址为000BH)并执行相应的中断处理程序。
我们从定时器的选择位D1和D0的设置可知,定时器只有工作在方式2下方可自动重载前次初值,如果选择的是其余的三种方式都不能自动重载。
因此,当希望定时器继续定时时,需要在中断处理程序中重新赋定时器初值。
我们称这种在中断处理程序中重新赋定时器的初值为定时器的重载初值。
在了解了单片机定时器重载初值的具体内容和引发原因之后,接下来我们就来看一下,如何完成重载初值的设置。
如果是在定时精度要求不高的系统中,那幺想要定时器的重载初值可以选择与第一次初值设置相同的方法,即可按转化公式重载。
但是,如果是在定时精度要求较高的场合,那这种方法还是可以套用的吗?答案是否定的。
在这种情况下我们就不能简单地按转化公式重载了。
因为从定时器计满发出溢出中断请求到重载初值,存在一定的时间间隔,这将会造成定时的延迟。
这个时间间隔包含两部分的延迟,第一是中断响应所需的延迟,包括执行转向中断服务程序的跳转指令所需要的2个机器周期和等。