在使用单片机定时器进行计时设置的过程中,出现设置错误的情况是在所难免的,这就需要我们采取一些方法对已经造成的错误进行纠正了。由于单片机的机器周期通常为1μs~2μs,因此定时误差一般应在0μs~20μs之内,对于一般应用,此误差可以忽略,但是对于精确度要求比较高的应用场合,此误差必须进行校正。定时误差是定时溢出后转入执行定时处理语句段之间所耗费的时间,此时间主要由定时溢出转入定时处理语句段所必须执行的指令或硬件过程产生。
定时误差校准的一个比较简单的方法式,在定时溢出响应后,立刻停止定时器的计数工作,同时快速读出当时计数值,然后将完成这一任务的程序段执行时间考虑进去,作为修正因子校正定时初值,以下程序段以中断处理方式为例来进行说明。需要注意的是,由于执行从指令clrTR0(停止计数)到指令setbTR0(重新开启计数)之间的指令需8个机器周期,应将此消耗考虑进去,因此该程序将定时误差缩小在1个机器周期内。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)