This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于PWM相位错位的问题

Other Parts Discussed in Thread: MSP430G2231

我的项目需要让msp430g2231输出2路15KHZ的PWM信号,其中一路相位固定,另一路相位可调,改变相位是通过更新CCR1来实现。调试中当更新CCR1后经常出现PWM信号错误地多移相了180度。敬盼赐教。代码附后:

void main(void)

{ WDTCTL = WDTPW +WDTHOLD;  

for (i = 0; i < 0xfffe; i++);  

P1OUT = 0x00;    

j = 0;      

Set_DCO(DELTA_16MHZ);  

CAL_DATA[j++] = DCOCTL;

CAL_DATA[j++] = BCSCTL1;

P1SEL |= 0x16;  

P1DIR |= 0x16;  

CCTL0 = OUTMOD_4;  

CCTL1 = OUTMOD_4 ;  

CCR0 = 512-1;  

CCR1 = 398;

TACTL = TASSEL_2 + MC_1 ;  

while(1)

{   for(j=0;j<400;j++)

      {

        do{if(TACCTL0&&CCIFG)break;} while(1);

        setbit(TACCTL0,CCIFG);

       CCR1 = j;

      Delay(50000);

      }

  for(j=400;j>100;j--)

      {

     do{if(TACCTL0&&CCIFG)break;} while(1);

     setbit(TACCTL0,CCIFG);

     CCR1 = j;

       Delay(50000);

      }

}

}

Set_DCO()引用TI 例程