G2553 TA0能输出两路PWM波形么??

2019-03-24 11:52发布

用的是MSP430G2553  管脚上没有TA0.2,不像TA1那样。但是貌似论坛上有人说每路TA都能产生两路PWM波,好奇之余试试···结果没成功。以下是程序:
#include <msp430g2553.h>

void main( void )
{
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;

  //时钟设置为1MHz mclk=smclk=dco
BCSCTL1 = CALBC1_1MHZ;
DCOCTL = CALDCO_1MHZ;
BCSCTL3 |= LFXT1S_2;
BCSCTL2 |=SELM_1 + DIVM_0;

  //初始化TA0为两通道pwm,smclk
  P1DIR |= (BIT1+BIT2);
  P1SEL |= (BIT1+BIT2);
  TA0CCR2 = 2000;
  TA0CCTL0 = OUTMOD_7;
  TA0CCTL1 = OUTMOD_7;
  TA0CCR0 = 200;
  TA0CCR1 = 1000;
  TA0CTL = TASSEL_2 + MC_1;

_BIS_SR(LPM0_bits);    //进入LPM0低功耗模式
}

额··没出波形···是不是PWM波周期设置只认CCR0??对哦 没看到哪里可以设置说周期可以设置为CCR1或者CCR2·····那怎么过TA0输出两路PWM呢??膜拜高手解答·······阿弥陀佛···· 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
19条回答
wzw134
2019-03-25 20:01
嗯,听你这么一说,我重新看了一下芯片资料,貌似可以实现,也就是说TA0.0、TA0.1、TA1.0、TA1.1、TA1.2一共五路输出,当两个计数器分别计数到CCRx的时候 使用模式4,当达到CCRx时产生中断并翻转输出电平,进入中断给CCRx赋值,以便下次产生中断。但是你的程序我试过,没有PWM输出(按你程序所指,PWM应该从P1.1或P1.5、P1.2、P2.0或P2.3、P2.1或P2.2、P2.4或P2.5这五个管脚输出,xx或xx输出的波形一样,不知理解的对不对。)另外你把LPM0注释掉了,程序打开总中断后就结束了 这样还能产生中断??把CCRx的初值注释掉了,这样计数器怎么判断计数到何值产生中断??  带着疑问,把你的程序改了一改,结果还是没显示······我把你程序中DCO_init(1);换成BCSCTL1 = CALBC1_1MHZ;
    DCOCTL = CALDCO_1MHZ; 其它不变的情况下运行没有结果······································求指教········膜拜·····

一周热门 更多>

相关问题

    相关文章