单片机定时器中断时间误差的分析及补偿.doc_第1页
单片机定时器中断时间误差的分析及补偿.doc_第2页
单片机定时器中断时间误差的分析及补偿.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机定时器中断时间误差的分析及补偿admin3 发表于 2006-02-19 14:43:24 阅读全文 | 回复(0) | 引用通告 | 编辑摘要:本文分析了单片机定时器溢出中断与响应中断的时间误差,并给出了补偿误差的方法和实例。关键词:单片机; 定时器; 中断; 误差 前言单片机内部一般有若干个定时器。如单片机内部有定时器和定时器。在定时器计数溢出时,便向发出中断请求。当正在执行某指令或某中断服务程序时,它响应定时器溢出中断往往延迟一段时间。这种延时虽对单片机低频控制系统影响甚微,但对单片机高频控制系统的实时控制精度却有较大的影响,有时还可能造成控制事故。为扩大单片机的应用范围,本文介绍它的定时器溢出中断与响应中断的时间误差、补偿误差的方法和实例。 误差原因、大小及特点产生单片机定时器溢出中断与响应中断的时间误差有两个原因。一是定时器溢出中断信号时,正在执行某指令;二是定时器溢出中断信号时,正在执行某中断服务程序。 正在执行某指令时的误差及大小由于正在执行某指令,因此它不能及时响应定时器的溢出中断。当执行此指令后再响应中断所延迟的最长时间为该指令的指令周期,即误差的最大值为执行该指令所需的时间。由于各指令都有对应的指令周期,因此这种误差将因正在执行指令的不同而不同。如定时器溢出中断时,正在执行指令 , ,其最大误差为个机器周期。而执行指令 , 时,其最大误差为个机器周期。当正在执行乘法 或除法指令 时,最大时间误差可达个机器周期。在单片机指令系统中,多数指令的指令周期为个机器周期,因此最大时间误差一般为个机器周期。若振荡器振荡频率为,正在执行指令的机器周期数为,则最大时间误差为()。例如,正在执行乘法指令(),此时的最大时间误差为:()()() 正在执行某中断服务的程序时的误差及大小定时器溢出中断信号时,若正在执行同级或高优先级中断服务程序,则它仍需继续执行这些程序,不能及时响应定时器的溢出中断请求,其延迟时间由中断转移指令周期、中断服务程序执行时间、中断返回指令的指令周期及中断返回原断点后执行下一条指令周期(如乘法指令)组成。中断转移指令和中断返回指令的指令周期都分别为个机器周期。中断服务程序的执行时间为该程序所含指令的指令周期的总和。因此,最大时间误差为:()() () 若设,则最大时间误差为:() ()()()()。由于上式中一般大于,因此,这种时间误差一般取决于正在执行的中断服务程序。当正在执行中断返回指令、或正在读写或指令时,这种误差在个机器周期内。 误差非固定性特点定时器溢出中断与响应中断的时间误差具有非固定性特点。即这种误差因正在执行指令的不同而有相当大的差异。如正在执行某中断服务程序,这种误差将远远大于执行一条指令时的误差。后者误差可能是前者误差的几倍、几十倍、甚至更大。如同样只执行一条指令,这种误差也有较大的差别。如执行乘法指令 比执行 , 指令的时间误差增加了个机器周期。这种误差的非固定不仅给误差分析带来不便,同时也给误差补偿带来困难。 误差补偿方法由于定时器产生溢出中断与响应中断请求的时间误差具有非固定性,因此,这种误差很难用常规方法补偿。为此,本文介绍一种新方法。现介绍该方法的基本思路、定时器新初值及应用情况。 基本思路为使定时器溢出中断与响应中断实现同步,该方法针对中断响应与中断请求的时间误差,对定时器原有的计数初值进行修改,以延长定时器计数时间,从而补偿误差。在该方法中,当定时器溢出中断得到响应后,即停止定时器的计数,并读出计数值。该计数值是定时器溢出后,重新从开始每个机器周期继续加所计的值。然后,将这个值与定时器的停止计数时间求和。若在定时器原计数初值中减去这个和形成新计数初值,则定时器能在新计数初值下使溢出中断与响应中断实现同步,从而达到误差的补偿要求。 定时器新计数初值若定时器为计数方式,操作方式为,则计数器初值。式中为振荡器的振荡频率。为需要定时的时间,也为中断的间隔时间。为定时器原计数初值。在对定时器溢出中断与响应中断时间误差进行补偿时,定时器的新计数初值为: 式中为中断间隔时间。为定时器停止计数时间,该时间为定时器停止计数到重新启动计数之间所有程序指令周期数的总和。为定时器溢出中断后,重新从开始直至计数器停止时计的值。在误差补偿中,若将定时器计数初值取代,则可使定时器下次的溢出中断与响应中断实现同步。 实例要求补偿定时器每产生一次溢出中断时的中断响应延迟的误差。若振荡器振荡频率,定时器工作在计数方式,工作模式为,则补偿中断响应时间误差时的定时器新初值为: ( ) ( ) 误差补偿程序为: ;关中断 ;停止定时器计数 , ;清零 , () ;定时器最大计数值的低位送 , , () ;的低位减去( )的低位送累加器 , ;的低位减去( )的低位送 , , ;清零 , () ; 的高位送 , , () ;的高位减去( )的高位送 , ;的高位减去( )的高位送 , ;重新启动定时器在上式和上段程序中,由于,中断间隔时间为,因此的机器周期数为。由于第条指令到第条指令的指令周期的机器周期数之和为,因此,为个机器周期。虽在执行第一条指令 后停止定时器

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论