当前位置:首页 > 单片机 > 单片机
[导读]关于PIC单片机的定时器精准计时的计算在此用了16C711单片机的TMR0做定时中断,希望实现精准计时,在程序中,TMR0用了晶振的32分频,初值#0FCH,因此POPBEAR兄弟计算出每个定时中断的计时时间为(256-X)*32*4/32768=0.

关于PIC单片机定时器精准计时的计算

在此用了16C711单片机的TMR0做定时中断,希望实现精准计时,在程序中,TMR0用了晶振的32分频,初值#0FCH,因此POPBEAR兄弟计算出每个定时中断的计时时间为(256-X)*32*4/32768=0.015625秒。注意,问题就在这里!实际上这个时间是TMR0的初值被置入后两个指令周期后(见PIC单片机定时器/计数器资料)到下一次中断发生时的时间。如果要用到定时器的精准定时,必须理解这一概念!

如采用32768Hz的晶振,每个指令周期为122us,在中断处理程序中,到TMR0的初值被置入,共有7条指令,加上TMR0的初值被置入后两个指令周期,如果中断处理程序不直接放在0004H地址而采用GOTO指令的两个周期,一共为11个指令周期。也就是说,每个定时中断发生的间隔为0.015625秒+11*122us。程序中64次中断为1秒,那么1秒误差为64*11*122us=85.9375ms,1分钟的误差为5.156s。

那么怎样得到精准计时呢?这就要在对定时器的初值赋值上和中断处理程序中做文章。

关于如何产生一个大致比较精准的时间中断

使用TMR0的时候,如果仅TMR0一个中断,显然,使用 TMR0=TMR0+OFFSET的方式就能够产生一个比较精准的时间中断。特别是不用考虑从中断到TMR0的赋值中间间隔了多少时间的延时。

但是使用TMR1时,就产生了问题,因为TMR1是16位的,所以TMR1L=TMR1L+OFFSET_L时,就得考虑TMR1H得进位问题。

使用C内欠套汇编如下(如用赋值而不是增量方式,C中就得中断到赋值得时间了),且TMR1_Revalue_H得值不会为0xFF。

[cpp] view plaincopyprint? #asm

movf _TMR1_Revalue_L & 0x7F,W

addwf _TMR1L,F

btfss _STATUS,0

movf _TMR1_Revalue_H & 0x7F,W

btfsc _STATUS,0

incf _TMR1_Revalue_H & 0x7F,W

addwf _TMR1H

#endasm

方法两种

1)利用CCP模块在Compare模式下特殊事件触发功能实现精确的TMR1定时中断

2)普通模式下在重装定时初值前TMR1暂停计数,设定完毕后再开启。注意补偿中间置初值的延时时间。

扩展阅读:PIC的配置位

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

单片机定时器通过晶振频率来产生精准的计数脉冲,从而实现微秒级别的时间控制。 单片机定时器依托于一个稳定的计数器,该计数器与单片机上的晶振部件相连。晶振经过12分频后,为单片机提供稳定且精准的1MHZ脉冲。由于晶振的频率极...

关键字: 单片机 定时器

编码器‌是一种传感器,主要用于测量旋转运动的角度、角速度和位移等参数。常见的编码器类型包括增量式编码器和绝对值编码器,前者通过检测脉冲的增加或减少来测量旋转方向和距离,后者则直接输出当前的绝对位置信息‌。

关键字: 编码器‌ 定时器

一款语音控制的番茄时间定时器,内置Seeed Studio XIAO ESP32S3感测和圆形显示。用免提时间管理保持高效!

关键字: 定时器 ESP32S3 语音控制

为增进大家对PIC单片机的认识,本文将对PIC单片机的技术特性、主流系列PIC单片机和PIC单片机在智能家居系统的应用予以介绍。

关键字: 单片机 指数 PIC单片机

为增进大家对PIC单片机的认识,本文将对PIC单片机的优势以及在PIC单片机振荡电路中选择晶体的方法予以介绍。

关键字: 单片机 指数 PIC单片机

为增进大家对PIC单片机的认识,本文将对PIC单片机的优势和不足以及PIC单片机的端口设置方法予以介绍。

关键字: 单片机 指数 PIC单片机

【2025年3月20日, 德国慕尼黑讯】全球功率系统和物联网领域的半导体领导者英飞凌科技股份公司(FSE代码:IFX / OTCQX代码: IFNNY)近日宣布,其旗下ModusToolboxTM开发平台中的AIROC™...

关键字: MCU 物联网 定时器

众所周知,说到延时,很多人都会想到用软件件来实现,比如定时器之类的。今天就来说说用硬件来实现定时的方式,虽说没有那么准,但是有些场合还是用得到的。

关键字: CD4060 定时器

如果定时器的重装值和分频设置不正确,会导致PWM输出的频率和占空比不准确,从而产生误差‌1。

关键字: 定时器 分频

SysTick定时器的工作原理主要基于一个递减计数器的机制。以下是对SysTick定时器工作原理的详细解释:

关键字: SysTick 定时器
关闭