打印

帮忙看看这个烂定时器

[复制链接]
2077|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xin___xin|  楼主 | 2008-1-24 09:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想要用定时器0来实现比较短的定时,10us,所以我选择了模式2
书上说的公式是(256-x)* 1us = 10us,我的CPU是51的6倍,所以我用了公式(256-x) / 6 = 10 ,然后用keil进行仿真,结果时间比我设置的10us要长的多。我的keil工程文件里头用的是对应的芯片,哪位大侠知道这是为什么?

相关帖子

沙发
ldy216| | 2008-1-24 09:58 | 只看该作者

问题没有表达清楚

  看看你的晶振,每个机器周期的执行时间是多少再说
  如果允许定时器计数数减去中断10US里面花的时间还剩下有20个周期以上,我的程序结构可以帮助你做到,全局均衡运行。否则,即使你做到了,其他任务没法跑,CPU几乎呈死机状态,因为这动作太快。

使用特权

评论回复
板凳
mapleyang| | 2008-1-24 10:14 | 只看该作者

timer原理

CPU是51的6倍,所以设置定时器的公式就给改了?
多看看原理,定时器怎么实现的

使用特权

评论回复
地板
xwj| | 2008-1-24 10:14 | 只看该作者

到底是定时器烂还是人烂啊?

建议去重修小学数学

使用特权

评论回复
5
xin___xin|  楼主 | 2008-1-24 11:16 | 只看该作者

谢谢楼上大侠

我用的是philips 的p89LPC934,晶体是12m的,他的指令周期是1/6m,所以我才改的公式,这个应该没有问题吧?
人当然是比定时器烂,呵呵。
我的keil编译器也是这么设置的,仿真出来的时间总是对不上,我再试试

使用特权

评论回复
6
dandywang| | 2008-1-24 14:44 | 只看该作者

跟指令周期有什么关系!

使用特权

评论回复
7
xin___xin|  楼主 | 2008-1-24 14:45 | 只看该作者

问题找到了,给大家通报一下

首先是设置失误,导致自己以为定时器工作模式2,其实人家工作在模式1当中,寒自己一个;设置完成以后发现,每次调用定时的时候发现第一次调用总是时间不对,然后就对了。。。最后发现,定时器控制不能只用ET来控制,TR也要用的时候才开始计数,教训啊教训

使用特权

评论回复
8
xin___xin|  楼主 | 2008-1-24 14:51 | 只看该作者

re dandywang

我用的单片机的定时器用的就是PCLK计数

使用特权

评论回复
9
dandywang| | 2008-1-24 15:18 | 只看该作者

PCLK是什么

使用特权

评论回复
10
ayb_ice| | 2008-1-24 17:48 | 只看该作者

晶振频率不对

使用特权

评论回复
11
xin___xin|  楼主 | 2008-1-25 11:00 | 只看该作者

re

to dandywang 这是我用的片子的时钟图
to ayb_ice 因为我现在是软件仿真,晶体是设置对了的

另外,一点小经验,写给自己也给跟我一样做了几年都是菜鸟的人,有时候把问题详细表达出来,问题就解决了一半了,呵呵

使用特权

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

本版积分规则

8

主题

21

帖子

2

粉丝