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

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
1楼-- · 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}
juring
2楼-- · 2019-03-24 23:37
 精彩回答 2  元偷偷看……
benni
3楼-- · 2019-03-25 03:40
TACTL |= MC0;
这个不是增计数模式吗?
benni
4楼-- · 2019-03-25 05:28
TACTL |= MC0;
这不是增计数模式吗?
benni
5楼-- · 2019-03-25 07:18
 精彩回答 2  元偷偷看……
juring
6楼-- · 2019-03-25 10:29
原帖由 benni 于 2012-7-10 10:57 发表 TACTL |= MC0; 这个不是增计数模式吗?

同学~ 00111.jpg

一周热门 更多>

相关问题

    相关文章