完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
#include "msp430.h"
void Clock_Config(void) { PJSEL0 |= BIT4 | BIT5; //将PJ4,PJ5复用为LFXIN,LPXOUT CSCTL0 = 0xA500; //ulock CS register CSCTL1 = DCOFSEL_0; // Set DCO to 1MHz CSCTL2 = SELA__LFXTCLK | SELS__LFXTCLK | SELM__DCOCLK; CSCTL3 = DIVA__1 | DIVS__1 | DIVM__1; // Set all dividers CSCTL4 &= ~LFXTOFF; do { CSCTL5 &= ~LFXTOFFG; // Clear XT1 fault flag SFRIFG1 &= ~OFIFG; }while (SFRIFG1&OFIFG); // Test oscillator fault flag CSCTL0_H = 0; //lock CS register } //我想使能timerB0通道1的定时功能,但是一直进不去中断,通道0可以正常进入,只有在通道0和 //通道1都使能的情况下才能进入中断,很不解,为什么不能单独配置? void TimerB0_Init(void) { TB0CCTL0 |= CCIE;//这两行注释掉进不了中断,都不注释可以进入中断 TB0CCR0 = 5000; TB0CCTL1 |= CCIE;//这两行注释掉能进中断。 TB0CCR1 = 5000; TB0CTL |= TBSSEL__ACLK | MC__UP; } void main(void) { // Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD; PM5CTL0 &= ~LOCKLPM5; Clock_Config(); TimerB0_Init(); P6DIR |= BIT6; while(1); } #pragma vector = TIMER0_B1_VECTOR __interrupt void Timer0_B1_ISR(void) { switch(TB0IV) { case TB0IV_NONE: break; // No interrupt case TB0IV_TB0CCR1: // TB0CCR1 interrupt P6OUT ^= BIT6; break; case TB0IV_TB0CCR2: break; // TB0CCR2 interrupt case TB0IV_TB0CCR3: break; // TB0CCR3 interrupt case TB0IV_TB0CCR4: break; // TB0CCR4 interrupt case TB0IV_TB0CCR5: break; // TB0CCR5 interrupt case TB0IV_TB0CCR6: break; // TB0CCR6 interrupt case TB0IV_TB0IFG: // overflow break; default: break; } } #pragma vector = TIMER0_B0_VECTOR __interrupt void Timer0_B0_ISR(void) { P6OUT ^= BIT6; } 补充内容 (2018-11-1 08:58): 刚看了手册是不是只有通道0才能定时呀? 手册关于定时模式位MC的介绍: Mode control. Setting MC = 00h when Timer_A is not in use conserves power. 00b = Stop mode: Timer is halted 01b = Up mode: Timer counts up to TAxCCR0 10b = Continuous mode: Timer counts up to 0FFFFh 11b = Up/down mode: Timer counts up to TAxCCR0 then down to 0000h 从介绍来看他里面寄存器 用的是TAXCCR0,而不是TAXCCRX是不是说明只有通道0才具有定时功能呢,其他通道只有在捕获,比较输出模式才需要用到呢。 |
|
相关推荐
4个回答
|
|
顶一下,别沉了。
|
|
|
|
没进中断处理的原因很多,很可能是没有使能,或是定时器1的中断号与中断处理程序不匹配。
|
|
|
|
大牛呢?指点一下这个小问题吧。
|
|
|
|
只有小组成员才能发言,加入小组>>
2630个成员聚集在这个小组
加入小组MSP430FR5994 使用库函数 定时器触发AD问题请教
1574 浏览 2 评论
请问怎么把下面51单片机的代码改成msp430 g2 pocket的代码,还有改下时间变成30秒
2167 浏览 1 评论
4562 浏览 1 评论
2364 浏览 1 评论
1702 浏览 1 评论
706浏览 3评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
1574浏览 2评论
930浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-4-18 12:44 , Processed in 1.197993 second(s), Total 89, Slave 71 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号