在线情况
1
  • 头像
  • 级别
    • 积分21
    • 经验516
    • 文章33
    • 注册2009-10-13
    #include <msp430x14x.h>
    #define   uint  unsigned int
    #define   uchar unsigned char
    #define   PWM   BIT2
    void int_clk()
    {
        uchar i;
        BCSCTL1&=~XT2OFF;  //打开XT振荡器
        BCSCTL2|=SELM1+SELS;//MCLK 8M and SMCLK 1M  
        do
         {
            IFG1 &= ~OFIFG;                 //清除振荡错误标志
            for(i = 0; i < 100; i++)
           _NOP();                  //延时等待
            }
        while ((IFG1 & OFIFG) != 0);      //如果标志为1继续循环等待
        IFG1&=~OFIFG;
    }
    void int_pwm()
    {
      P1SEL|=PWM;//选择P12作为PWM输出
      P1DIR|=PWM;  
      TACCR0=800;//PWM信号周期10KHz
      TACCR1=100;//占空比1:1
      TACCTL1=OUTMOD0+OUTMOD1+OUTMOD2; //输出模式选择
      TACTL|=TASSEL1+MC0;
    }
    void main()
    {
      WDTCTL=WDTPW+WDTHOLD;//关看门狗
      int_clk();  //初始化时钟
      int_pwm();  //初始化PWM
      while(1);//结束
    }
    再思考一下
    在线情况
    2
    • 头像
    • 级别
      • 积分21
      • 经验516
      • 文章33
      • 注册2009-10-13
      TBCTL = TBSSEL0 + TBCLR;
        TBCCR0 = 800;
        TBCCTL1 = OUTMOD_7;
        TBCCR1 = 200;
       
        P4DIR |= 0x02;
        P4SEL |= 0x02;
        TBCTL |= MC0;
      再思考一下
      Powered by LeadBBS 9.2 .
      Page created in 0.0938 seconds with 6 queries.