下面的代码我觉得没有错啊,可是就是没有方波产生?

2019-03-24 13:41发布

include  <msp430g2231.h>
unsigned int flag = 0;void main(){    WDTCTL = WDTPW +WDTHOLD;   //STOP WDT   // FLL_CTL0 |= XCAP14PF;   //匹配14PF的负载电容    P1SEL &= ~BIT5;          P1DIR |= BIT5;     TACTL = TASSEL1 + TACLR ;     TACCTL0 = CCIE;    TACCR0 = 1748;    TACTL |= MC0;    _EINT();    while (1) {    LPM0;    }}
# pragma vector = TIMERA0_VECTOR__interrupt void TimerA0_ISR(void){    P1OUT ^= BIT5;    flag++;}
我用flag作为标志,发现并没有进入中断,为什么啊?哪里错了? 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
18条回答
juring
2019-03-24 19:38
<
原帖由 benni 于 2012-7-10 10:32 发表 include  unsigned int flag = 0;void main(){    WDTCTL = WDTPW +WDTHOLD;   //STOP WDT   // FLL_CTL0 |= XCAP14PF;   //匹配14PF的负载电容    P1 ...

目测你没有设置TA的计数模式~
#include <msp430g2553.h>
void main(void){  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT  P1DIR |= BIT0;                            // P1.0 output  CCTL0 = CCIE;                             // CCR0 interrupt enabled  CCR0 = 50000;  TACTL = TASSEL1 + TACLR + MC_2;  //TACTL = TASSEL_2 + MC_2;                  // SMCLK, contmode
  _BIS_SR(LPM0_bits + GIE);                 // Enter LPM0 w/ interrupt}
// Timer A0 interrupt service routine#pragma vector=TIMER0_A0_VECTOR__interrupt void Timer_A (void){  P1OUT ^= BIT0;                            // Toggle P1.0  CCR0 += 50000;                            // Add Offset to CCR0}

一周热门 更多>

相关问题

    相关文章