打印

还是**那句话:实事求是

[复制链接]
11171|68
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
icmap|  楼主 | 2008-11-18 21:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
近期定时器的话题又多起来了,说到底还是没找到一个好的方法。
我见到论坛上很多的方法都是对定时器进行重装,结果是遇到要考虑指令的执行时间这样的麻烦问题。
用定时器计时,有必要重装吗?有兴趣的来发表看法。

先说我的看法:不需要重装。如果计时时间较长长(例如1秒以上),或者对瞬时精度要求不高,也可以不需要定时器中断。

相关帖子

沙发
一级菜鸟| | 2008-11-18 21:48 | 只看该作者

只要你找得到合适的晶振

满足256个定时器周期正好为某个整数,当然可以不重装

使用特权

评论回复
板凳
lyjian| | 2008-11-18 21:49 | 只看该作者

我的看法:没什么讨论的必要

谁想重装就重装,谁不想重装就不重装
都没什么大不了的

使用特权

评论回复
地板
NE5532| | 2008-11-18 21:51 | 只看该作者

还是**那句话:实事求是

先回答我——你要“精确”到什么程度?

使用特权

评论回复
5
原野之狼| | 2008-11-18 21:53 | 只看该作者

实事求是 不是 邓 说的

使用特权

评论回复
6
icmap|  楼主 | 2008-11-18 21:57 | 只看该作者

回复 2 楼

即使是没有所谓“合适”的晶振,也不需要重装。我计时从来就不挑晶振。

使用特权

评论回复
7
一级菜鸟| | 2008-11-18 21:59 | 只看该作者

LS先回答下4楼的问题

使用特权

评论回复
8
icmap|  楼主 | 2008-11-18 22:01 | 只看该作者

回复 3 楼

如果用重装方法的人不提出“考虑指令执行时间”的问题,是没有讨论的必要。

使用特权

评论回复
9
一级菜鸟| | 2008-11-18 22:03 | 只看该作者

答LS

不使用重装模式,不挑晶振,你能在51上写出精确度仅依赖晶振的整数定时,请给出方法,别光说不练

使用特权

评论回复
10
NE5532| | 2008-11-18 22:05 | 只看该作者

楼主:你知道你用的晶体的误差是多大吗?

如果你做的是煮蛋器的延时,晚1mS吃到**蛋会影响你上班吗??

使用特权

评论回复
11
lyjian| | 2008-11-18 22:14 | 只看该作者

最好先定义好“精确度”再来讨论

如果要定时1S的话,怎么都能达到精度要求(假如精度只是要求ms级的话,和使用重装模式,挑晶振没什区别)。
另外,什么叫"挑晶振"?

使用特权

评论回复
12
ljm810010| | 2008-11-18 22:14 | 只看该作者

icmap可能有绝招,不妨说来让大家见识见识!

使用特权

评论回复
13
5880527| | 2008-11-18 22:18 | 只看该作者

发一个程序无任何累计误差的,精度完全依赖于晶振


        ORG     0000H
        LJMP    MAIN
        ORG     000BH
        MOV     TL,TL0
        LJMP    TIME0 


TIME0:  PUSH    PSW
        PUSH    DPH
        PUSH    DPL
        PUSH    ACC
        MOV     A,TL
        MOV     DPTR,#TAB1
        JMP     @A+DPTR
TAB1:   NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        
        MOV     TH0,T0H 
        MOV     TL0,T0L
;在这后面执行的语句都能保证在同一时刻执行,不会因为中断相应的快慢而影响了执行的时刻不同,可以做无误差的PWM

使用特权

评论回复
14
NE5532| | 2008-11-18 22:21 | 只看该作者

我说楼主的晶体误差可能到100ppm,信不?

使用特权

评论回复
15
天雨粟| | 2008-11-18 22:21 | 只看该作者

关于精度要求

我要求达到PC及手机的RTC精度,这个才称得上是单片机的实时时钟系统,用途很广,求软、硬及器件选择的善策!

使用特权

评论回复
16
NE5532| | 2008-11-18 22:25 | 只看该作者

15楼的,PC的时间误差大得很。

一般的RTC标称是1年10分,这个数据已经是山寨化的指标了。PC时间准是因为有网络自动对时,CDMA手机也是一样的道理。

使用特权

评论回复
17
一级菜鸟| | 2008-11-18 22:26 | 只看该作者

13楼的程序一样存在累计误差

道理很简单,MOV TEMP,TL0需要2个时钟周期

使用特权

评论回复
18
ljm810010| | 2008-11-18 22:27 | 只看该作者

13楼,你的NOP有多少个?256个吗?浪费呀

使用特权

评论回复
19
一级菜鸟| | 2008-11-18 22:30 | 只看该作者

15楼精神可嘉

的确,使用一般的32.768管状晶振,其本身结构就决定了受温度影响很大,要实现小于0.5秒/天的计时,常见的方法就是用温补晶振TCXO,不容易购买的话,亦可使用温度传感器加修正的方法,最简单的是使用DS3231,内置TCXO,不用费太大力气就能得到高精度,缺点是有点贵

使用特权

评论回复
20
天雨粟| | 2008-11-18 22:32 | 只看该作者

NE5532老师

办公室电脑不上网,前几天要用才校时,一年了,无明显误差(分钟级);

我的手机很怪,不是CDMA,我用网络的时间校时,一天也有数秒,但半年不校时,也未见有明显误差,不知是何原因!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

11

主题

180

帖子

0

粉丝