输出PWM

2019-03-24 12:15发布

大家看看这个
#include <msp430x14x.h>

void ClockInit()
{
        unsigned char i;
        BCSCTL1&=~XT2OFF;                   //XT2振荡器开启
         BCSCTL2|=SELM1+SELS;                //SELM1=1:MCLK时钟源为XT2CLK;SELS=1:SMCLK的时钟源为XT2CLK。

        do
          {
              IFG1&=~OFIFG;                 //消除振荡器错误标志
              for(i=0;i<100;i++)
               _NOP();
          }
        while((IFG1&OFIFG)!=0);
        IFG1&=~OFIFG;   
        
      
}
void main(void)
{
  WDTCTL = WDTPW + WDTHOLD; // Stop WDT
  
  void ClockInit();


   TACTL = TASSEL_2 + MC_1; // SMCLK, up mode
   P1DIR |= 0x0C; // P1.2 and P1.3 output
   P1SEL |= 0x0C; // P1.2 and P1.3 TA1/2 otions



   CCR0 = 800; // PWM Period
   CCTL1 = OUTMOD_7; // CCR1 reset/set
   CCR1 = 400; // CCR1 PWM duty cycle
   CCTL2 = OUTMOD_7; // CCR2 reset/set
   CCR2 = 200; // CCR2 PWM duty cycle



   _BIS_SR(LPM0_bits); // Enter LPM0
}

我感觉输出周期应该是10k,但是示波器测出来只有1k   。怎么搞的啊? 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
顺理成章
1楼-- · 2019-03-25 12:31
我在TI提供的例程上看到MCLK = SMCLK = TACLK = default DCO ~800kHz,可能是默认为800khz吧。
power_ic_LED
2楼-- · 2019-03-25 17:17
 精彩回答 2  元偷偷看……
电子书
3楼-- · 2019-03-25 22:12
你用的是XT2CLK是高频晶振时钟,是外接的8MHz,如果定时器想用1MHz的话,要加上8分频吧,试试看。
Li_Lei
4楼-- · 2019-03-25 23:48
你先把mclk输出用示波器看看就知道了

一周热门 更多>

相关问题

    相关文章