完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
`当使用MSP430G2553单片机用来捕获方波的上升沿来计算频率时遇到问题: 程序在进入中断时一直进入溢出中断,这是怎么回事? 用的是tiMER1.2 下面是程序: #include void Timer1Init(); int flag = 0; unsigned long value = 0; unsigned int result1_start,result1_end; unsigned int index=0; unsigned int temp; /* * main.c */ void main(void) { WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer BCSCTL1=CALBC1_1MHZ; DCOCTL=CALDCO_1MHZ; //P2DIR &=~BIT5; //P2.5,为输入引脚 P2SEL |= BIT5; // P2.5 = (InputDirection + TA1.2) = CCIxB.2 --> CCR2,P2.5作为输入,CCI2B,指定输入 Timer1Init(); P1SEL |= BIT4; P1DIR |= BIT4; P1DIR |= BIT0; P1OUT |= BIT0; _EINT(); while(1) { value = result1_start; } } void Timer1Init() { TA1CCTL2 = CAP + CCIS_1 + CM_3 + CCIE+SCS; // Capture CCIxB, both edge, interrupt enable.CCI2B->p2.5 TA1CTL |=TASSEL_2 + ID_0 + MC_2+ TAIE+TACLR ;//选择1M-SMCLK时钟,continuous mode TA1CCR2=0; //TACTL&=~CCIFG; } #pragma vector=TIMER1_A1_VECTOR __interrupt void TAIV_ISR(void) { switch(TA1IV) { case 4: //ccr2中断向量 if (TA1CCTL2&CCI) //上升沿触发 { result1_start=TA1CCR2;//记录初始值 index=0; break; } else { result1_end=TA1CCR2; //记录结束值 if(result1_end>result1_start)//结果比开始数值肖,表示溢出了一次或者几次,但是一般从0开始计数的话是不溢出的,这超声波实际测不了那么远,最多有个4米,5米的样子已经很好了 //TACTL|=TACLR;//这句貌似不需要 temp=result1_end-result1_start; else temp=result1_end+index*65535-result1_start; index=0; //溢出清零 break; } case 2: break; case 10: index++;P1OUT ^= BIT0;break; //溢出中断向量,其实就2,4,10号向量有用那些手册里也没说,用不到 default :break; } TACCTL1&=~COV } ` |
|
相关推荐
8个回答
|
|
求大神帮忙,在线急等
|
|
|
|
求大神帮忙,在线急等
|
|
|
|
|
|
|
|
|
|
|
|
好的,谢谢,我试一试
|
|
|
|
很好的贴子,谢谢了,很有用,非常感谢,恩恩
|
|
|
|
|
|
|
|
|
|
|
|
只有小组成员才能发言,加入小组>>
3055个成员聚集在这个小组
加入小组2980 浏览 1 评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3704 浏览 2 评论
请问怎么把下面51单片机的代码改成msp430 g2 pocket的代码,还有改下时间变成30秒
2366 浏览 1 评论
4832 浏览 1 评论
2594 浏览 1 评论
1509浏览 3评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3705浏览 2评论
2981浏览 1评论
1707浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 08:18 , Processed in 1.459076 second(s), Total 96, Slave 77 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号