新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 单片机定时器中断时间误差的分析及补偿

单片机定时器中断时间误差的分析及补偿

作者: 时间:2012-03-22 来源:网络 收藏

3.3 实例

要求每1ms产生一次溢出时的响应延迟的。若振荡器振荡频率fosc=12MHZ,工作在计数方式,工作模式为1,则响应时的新初值X1为:
X1=216-t3× fosc/12=216-(t0+ t1)- t2=216-(1000+ 13)- t2

程序为:
……
0 CLR EA ;关CPU中断
1 CLR TRi ;停止定时器计数
2 MOV R0, #OOH ;R0清零
3 MOV R0, #LOW(216) ;定时器最大计数值的低8位送R0
4 MOV A, R0
5 SUBB A, #LOW(1000+13) ;216的低8位减去( t0+ t1)的低8位送累加器A
6 SUBB A, TLi ;216的低8位减去( t0+ t1+ t2)的低8位送TLi
7 MOV TLi, A
8 MOV R0, #OOH ;R0清零
9 MOV R0, #HIGH(216) ;216 的高8位送R0
10 MOV A, R0
11 SUBB A, #HIGH(1000+13) ;216的高8位减去( t0+ t1)的高8位送A
12 SUBB A, THi ;216的高8位减去( t0+ t1 +t2)的高8位送A
13 MOV THi, A
14 SETB TRi ;重新启动定时器
……

在上式和上段程序中,由于fosc=12MHZ,中断间隔为1ms,因此t0的机器周期数为1000。由于第1条指令到第14条指令的指令周期的机器周期数之和为13,因此,t1为13个机器周期。CPU虽在执行第一条指令CLR TRi后停止定时器计数,但在TLi、THi中分别保存了t2的低位数据和高位数据。

4 结束语

由于本文介绍的误差补偿方法能对定时器溢出中断与CPU响应中断的非固定性误差进行有效补偿,因此,该方法对于提高高频控制系统实时控制精度和扩大应用范围都有较高的实用价值。

参考文献
[1]曹巧媛,原理及应用,电子工业出版社,1997、5
[2]汪吉鹏等,微机原理及接口,高等教育出版社,2001、7


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭