输出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条回答
x3641026
1楼-- · 2019-03-24 15:55
怎么没人啊!!!
这个主系统时钟是8M  子系统时钟是1M  对么????
版主,新手求助啊!!
x3641026
2楼-- · 2019-03-24 21:14
 精彩回答 2  元偷偷看……
hbl19881028
3楼-- · 2019-03-25 01:18
BCSCTL2|=SELM1+SELS; //SELM1=1:MCLK时钟源为XT2CLK;SELS=1:SMCLK的时钟源为XT2CLK。 这句是不是放错地方了啊。
Feeling_atHome
4楼-- · 2019-03-25 05:40
新人,没看懂!
whgwuhan
5楼-- · 2019-03-25 07:00
 精彩回答 2  元偷偷看……
shuizhiqing
6楼-- · 2019-03-25 11:23
对,理论计算确实应该是10Khz!出现这样的问题可能是硬件的问题吧

一周热门 更多>

相关问题

    相关文章