完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
定时器控制的发光二极管闪烁。这里使用了 MSP430FR5739 芯片的 32768Hz 低频晶体振荡器作为时钟
源。用定时器 A 定时 1s ,发光二极管灭 0.5s ,亮.0.5s. #include #pragma system_include void main (void) { WDTCTL= WDTPW + WDTHOLD; //设置看门狗控制寄存器,关看门狗 TA1CTL = TASSEL_0 + TACLR; // 设置定时器A控制寄存器, // TASSEL0=0x0100,选择辅助时钟ACLK, // TACLR=0x0004,清除定时器A计数器 TA1CCTL0 = CCIE; //设置捕获/比较控制寄存器,CCIE=0x0010,使能捕获比较中断 TA1CCR0 =16384; //设置捕获/比较寄存器,初始值为16384,对于32768Hz的频率,相当于0.5s P3DIR |=BIT7; //P3.7为输出 TA1CTL |= MC0; //设置定时器A控制寄存器,MC0=0x0010,使计数模式为增计数 _EINT(); //使能中断,这是一个C编译器支持的内部过程。 while(1); //无限次while循环 } #pragma vector=tiMER1_A1_VECTOR //CCR0中断标志 __interrupt void TA2Interrupt0() { P3OUT ^= BIT7; //将P3.7引脚取反,就是使发光二极管闪烁 } 程序烧写到开发板上,led登只亮不灭。为什么呢?求大神指点。 |
|
相关推荐
5个回答
|
|
没用过MSP430FR5739,但是见过猪跑。
可能原因有: 1、中断没看,_EINT()可能管全局中断,时钟T1的中断可能没开 2、TIMER1_A1_VECTOR写的是T1,但是中断函数是__interrupt void TA2Interrupt0(),看起来好像不对劲
最佳答案
|
|
|
|
感觉也是中断出了问题。
|
|
|
|
嗯,中断错了啊
|
|
|
|
应该进不去中断,所以P3.7的值没有变,看看中断
|
|
|
|
只有小组成员才能发言,加入小组>>
3053个成员聚集在这个小组
加入小组2974 浏览 1 评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3697 浏览 2 评论
请问怎么把下面51单片机的代码改成msp430 g2 pocket的代码,还有改下时间变成30秒
2366 浏览 1 评论
4832 浏览 1 评论
2593 浏览 1 评论
1436浏览 3评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3697浏览 2评论
2974浏览 1评论
1631浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-24 20:18 , Processed in 1.280148 second(s), Total 92, Slave 73 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号