4971|5

59

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

请教定时器TimerB延时问题 [复制链接]

void delay_5us(void)
{
TBCTL = TBSSEL_2 + TBCLR; /*SMCLK, SMCLK为8M, up mode*/
TBCCTL0 = CCIE;
TBCCR0=39; /*8,000,000/200,000-1=CCRO。用来确定 PWM周期5us*/
TBCTL|=MC_1;
while((TBCTL&BIT0)==1);
TBCTL&=~BIT0; /*清TBIFG中断标志位*/
}

程序执行到这就不动了,请教原因。是不是无法达到这个精度啊!

最新回复

void delay_5us(void) { TBCTL = TBSSEL_2 + TBCLR; /*SMCLK, SMCLK为8M, up mode*/ TBCCTL0 = CCIE; TBCCR0=39; /*8,000,000/200,000-1=CCRO。用来确定 PWM周期5us*/ TBCTL|=MC_1; while((TBCTL&BIT0)==1); TBCTL&=~MC_1; TBCTL&=~BIT0; /*清TBIFG中断标志位*/ }  详情 回复 发表于 2008-12-16 13:17
 
点赞 关注

回复
举报

72

帖子

0

TA的资源

纯净的硅(中级)

沙发
 
我主时钟MCLK选的DCO(默认是800K吗),SMCLK选的8M晶震,以前用选SMCLK经8分频后做定时器的时钟源,做延时100ms的函数,已经实现。不过那个是用中断函数中累加变量做的,觉的还是不够准确,现在想用判断中断标志位的方法来做。不知道是否可以实现?我照着以前的方法改了下计数器的值和时钟源的值还是无法实现,请指教!!
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
应该是while((TBCTL&BIT0)==0)吧!
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

4
 
对,那块是有问题,但改过来之后,还是无法正常运行。哪位大哥手头有开发板,帮小弟调下这个小程序,谢谢!
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

5
 
卡在这了很着急,还望各位斑竹多多帮忙!!我现在怀疑430可以定时这么短的时间吗?
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

6
 
void delay_5us(void)
{
TBCTL = TBSSEL_2 + TBCLR; /*SMCLK, SMCLK为8M, up mode*/
TBCCTL0 = CCIE;
TBCCR0=39; /*8,000,000/200,000-1=CCRO。用来确定 PWM周期5us*/
TBCTL|=MC_1;
while((TBCTL&BIT0)==1);
TBCTL&=~MC_1;
TBCTL&=~BIT0; /*清TBIFG中断标志位*/
}
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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