打印

定时器时间问题

[复制链接]
1083|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
爱好学习者|  楼主 | 2014-4-19 10:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
初始化为:
TMR1H=0xff;
TMR1L=0xe1;
T1CON=0;
TMR1GE=0;
GIE=1;
PEIE=1;
TMR1IE=1;
TMR1IF=0;
TMR1ON=1;
进入中断为:
if(TMR1IF) {         
TMR1H=0xff;
TMR1L=0xe1;
TMR1IF=0;
RA0=!RA0; }
使用的晶振为12M,实际定时为10us,为什么测量的时间比定时器的时间长呢?注:测量的时间为15us
沙发
yklstudent| | 2014-4-19 12:13 | 只看该作者
10US的中断
MCU还能干什么活?

使用特权

评论回复
板凳
zhimagod| | 2014-4-19 12:46 | 只看该作者
本帖最后由 zhimagod 于 2014-4-19 12:48 编辑

你用型号的片子?
12M晶振系统时钟应该是3M吧……
你timer1用的是什么时钟呢?
看你赋值应该用的系统时钟吧
其实要求精确的话最好选择带自动重载的定时器
如果非要用这个的话你对定时器赋值时用TMR1L+=0xe3试试吧
要给计算出指令运行的时间来

使用特权

评论回复
地板
爱好学习者|  楼主 | 2014-4-19 16:08 | 只看该作者
zhimagod 发表于 2014-4-19 12:46
你用型号的片子?
12M晶振系统时钟应该是3M吧……
你timer1用的是什么时钟呢?

用的是16F1527,是外接的12M晶振,

使用特权

评论回复
5
就是一个菜鸟| | 2014-4-23 17:29 | 只看该作者
这个时间间隔太短了吧,按你上面的初值计算应该是10US的。
直接用__DELAY_US 试试。

使用特权

评论回复
6
ayb_ice| | 2014-4-24 11:33 | 只看该作者
测量的就是实际的

使用特权

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

本版积分规则

19

主题

73

帖子

0

粉丝