找回密码
 注册
关于网站域名变更的通知

单片机定时器中断时间误差原因有哪些?

2023-2-8 18:31| 查看: 395| 评论: 0

摘要: 在单片机定时器的应用过程中,在中断时间设置方面出现误差是工程师们最不愿见到的错误之一。那么都是哪些原因导致了单片机定时器的中断时间设置出现了误差呢?这些误差的的严重程度又是怎样的呢?在今天的文章中,我 ...
单片机定时器的应用过程中,在中断时间设置方面出现误差是工程师们最不愿见到的错误之一。那么都是哪些原因导致了单片机定时器的中断时间设置出现了误差呢?这些误差的的严重程度又是怎样的呢?在今天的文章中,我们将会针对这一问题展开总结和分析。
        在单片机定时器的实际应用过程中,产生单片机定时器溢出中断与CPU响应中断的时间误差,通常来说有两个原因。一个是定时器溢出中断信号时,CPU正在执行某指令。而另一个原因就是定时器溢出中断信号时,CPU正在执行某中断服务程序。下面我们将会就这两种造成误差的原因展开分别分析。- ^; E# `0 x) ~0 E0 b& v1 v  E5 z4 Q, {
        CPU正在执行某指令时的误差
        在单片机定时器的使用过程中,由于CPU正在执行某指令时所造成的误差,是导致中断时间设置出现误差的重要原因。由于CPU正在执行某指令,因此它不能及时响应单片机定时器的溢出中断。当CPU执行此指令后再响应中断所延迟的最长时间为该指令的指令周期,即误差的最大值为执行该指令所需的时间。由于各指令都有对应的指令周期,因此这种误差将因CPU正在执行指令的不同而不同。如定时器溢出中断时,CPU正在执行指令MOVA,Rn,其最大误差为1个机器周期。

# {; b1 A0 X! C3 X; O
       而执行指令MOVRn、direct时,其最大误差为2个机器周期。当CPU正在执行乘法或除法指令时,最大时间误差可达4个机器周期。在8051单片机指令系统中,多数指令的指令周期为1-2个机器周期,因此最大时间误差一般为1-2个机器周期。若振荡器振荡频率为fosc。而当CPU正在执行指令的机器周期数为Ci,则最大时间误差为Δtmax1=12/fosc×Ci(us)。例如fosc=12MHZ,CPU正在执行乘法指令(Ci=4),此时的最大时间误差可通过公式计算为:
        Δtmax1=12/fosc×Ci=12/(12×106)×4=4×10-6(s)=4(μs)( Y8 ?1 Q3 T% ?* P0 y! C! x* E
        CPU正在执行某中断服务的程序时的误差
        由于CPU正在执行某个中断服务的程序而造成的单片机中断程序误差,也是一个重要的误差形成原因。当单片机定时器溢出中断信号时,此时如果CPU正在执行同级或高优先级中断服务程序,那么它将会继续执行这些程序,不能及时响应定时器的溢出中断请求,其延迟时间由中断转移指令周期T1、中断服务程序执行时间T2、中断返回指令的指令周期T3及中断返回原断点后执行下一条指令周期T4(如乘法指令)组成。0 y% e4 a# Z1 Y( f5 b

- ]: [( n) q. w" ]9 L
       中断转移指令和中断返回指令的指令周期都分别为2个机器周期。中断服务程序的执行时间为该程序所含指令的指令周期的总和。因此,最大时间误差Δtmax2为:7 f6 o; k! f; ^* p2 n7 T

5 _' x* P/ G1 g  ~8 J
       Δtmax2=(T1+T2+T3+T4)12/fosc=(2+T2+2+4)12/fosc=12(T2+8)/fosc。3 T6 _: z; z, w  u: N0 s8 w0 z- h% Y
  A' g$ `- C/ e' g( j4 E

       若设fosc=12MHZ,则最大时间误差可通过该公式计算为:' E% E- z3 Y5 |( [4 r0 P# f
        Δtmax2=12(T2+8)/fosc=12(T2+8)/12×106=(T2+8)×10-6(s)=T2+8(μs)。" p+ T) x7 `& f* e+ t
        此时需要工程师重点注意的一个问题是,由于上式中T2一般大于8,因此,这种单片机定时器的时间误差一般取决于正在执行的中断服务程序。当CPU正在执行中断返回指令RETI、或正在读写IE或IP指令时,这种误差在5个机器周期内。

本站资讯文章系编辑转载,转载目的在于传递更多信息,并不代表本站赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与本站联系,我们将在第一时间删除内容!
[声明]本站文章版权归原作者所有 内容为作者个人观点 本站只提供参考并不构成任何投资及应用建议。
本站拥有对此声明的最终解释权。
收藏 邀请
关闭

推荐内容上一条 /1 下一条

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-9-22 20:51 , Processed in 0.140625 second(s), 27 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

返回顶部