完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
源程序如下:
#include "msp430x42x.h" void main(void) { WDTCTL = WDTPW + WDTHOLD; // 停止看门狗 FLL_CTL0 |= XCAP18PF; // 配置晶振负载电容 P1DIR |= BIT3; TACTL |= TASSEL_1 + MC_2+TAIE; //选择ACLK,连续模式 TAR=65536-3277; _EINT(); LPM3; } #pragma vector=tiMERA1_VECTOR __interrupt void TACCR1_ISR(void) // 计至TACCR0中断 { TAR=65536-3277; P1OUT ^= BIT3; //灯闪烁 } 想利用定时器A的溢出中断定时闪烁的,但是程序下进去灯一直亮,不知道怎么回事,加上TACCTL0|=CCIE;灯就可以闪了。按理说主计数器可以溢出中断的,跟捕获比较没关系的。期待高手解答 |
|
相关推荐
2 个讨论
|
|
|
|
|
|
|
|
MSP430只有CCR0的中断(它的优先级最高)可以自动清除,TAR计数溢出的中断需要手动或者访问TAIV时可以被清除。
你用下面程序试试,F2013的(手头没有F42x),定时100us左右。 #include void main(void) { WDTCTL = WDTPW + WDTHOLD; // Stop WDT P1DIR |= 0x01; // P1.0 output TACTL = TASSEL_2 + MC_2 + TAIE; // SMCLK, contmode, interrupt TAR=65536-100; _BIS_SR(LPM0_bits + GIE); // Enter LPM0 w/ interrupt } // Timer_A3 Interrupt Vector (TAIV) handler #pragma vector=TIMERA1_VECTOR __interrupt void Timer_A(void) { TAR=65536-100; switch( TAIV ) { case 2: break; // CCR1 not used case 4: break; // CCR2 not used case 10: P1OUT ^= 0x01;// overflow break; } } |
|
|
|
|
|
只有小组成员才能发言,加入小组>>
3032个成员聚集在这个小组
加入小组2923 浏览 1 评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3594 浏览 2 评论
请问怎么把下面51单片机的代码改成msp430 g2 pocket的代码,还有改下时间变成30秒
2341 浏览 1 评论
4800 浏览 1 评论
2573 浏览 1 评论
1327浏览 3评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3600浏览 2评论
2928浏览 1评论
1510浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-28 19:57 , Processed in 1.285302 second(s), Total 45, Slave 38 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号