5381|7

70

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

精确定时1ms [复制链接]

请问,用149的Timer可以精确定时1ms吗?我试了下好象误差比较大。

我现在想从IO脚输出2ms高电平,2ms低电平,再输出3ms高电平,3ms 低电平,这样的波形如何实现?

我的想法是把一个IO置位,延时相应的时间,再复位,再延时响应的时间,这样可以实现吗?

最新回复

用晶体+定时器中断+IO翻转  详情 回复 发表于 2012-4-30 16:02
 
点赞 关注

回复
举报

80

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
精度和你选用的时钟有关系,实现方法参看定时器工作模式和寄存器部分
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
呵呵,麻烦说具体点,我8M和32768的时钟都试过。都不够准确,如果想精确,是选越大的时钟越好吗?

我的程序如下,麻烦看下有什么问题:

TACTL = TASSEL1 + TACLR;
CCTL0 = CCIE;
CCR0 = 1000;
TACTL |= MC0;
CCTL0 &= ~CCIE;
时钟为8M 八分频!
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

4
 
顶!我也不清楚
不知道咋考虑程序的时间?
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

5
 
首先Time_A的精确度取决于采用的时钟,如果是采用DCO,在温度、电压发生变化时是会有一定的误差。
做延时的方法有两种:一种是软件延时,一种是硬件延时。如果使用Time_A则是硬件的方式。
采用1M的时钟,那么计数器每计一个数的时间就是1/1M (S)。以此类推计数时间,选择你想要的定时间隔。
你的寄存器定义是采用SMCLK,不知道你SMCLK采用的时钟源是什么。检查你的SMCLK的频率是否正确。你最后一句话不知道是做什么用的。
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

6
 
试试这个能不能用,中断函数
...
{
switch(n)
{
case 0:CCR1 += 100;break;
case 10:CCR1 += 200;break;
case 20:CCR1 += 300;break;
}
P1OUT ^= 0x01;
n += 5;
}
里面的数没有计算,估计是需要改的。
 
 
 

回复

130

帖子

0

TA的资源

一粒金砂(中级)

7
 
:carnation:
 
 
 

回复

2002

帖子

24

TA的资源

五彩晶圆(高级)

8
 
用晶体+定时器中断+IO翻转
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表