在线情况
楼主
  • 头像
  • 级别
    • 积分10
    • 经验107
    • 文章14
    • 注册2011-03-14
    求救,关于pwm波,我的输不出波形
    [P]不知道哪里出错了,请大侠指点一二[/P][P]#include "msp430x14x.h"
    void timer(void )
    {
      unsigned int i=0;
      BCSCTL1&=~XT2OFF;
      do
      {
        IFG1&=~OFIFG;
        for(i=0;i<255;i++);
        _NOP();
      }while(IFG1&OFIFG);
      IFG1&=~OFIFG;
      BCSCTL2|=SELM_2+SELS;
    }
    void pwm (void)
    {
     
      P1DIR|=0X03;
      P1SEL|=0X03;
      TACTL|=TASSEL_2+TACLR+MC_1;
      CCR0=800;
      CCR1=400;
      CCTL1=OUTMOD_7;
      CCR2=600;
      CCTL2=OUTMOD_7;
    }
    void main ()
    {
      WDTCTL=WDTPW+WDTHOLD;
      timer();
      pwm();
      while(1);
    }[/P]
    微控网感谢您的参与
    在线情况
    2
    • 头像
    • 级别
    • 门派
    • 职务总版主
    • 声望+9
    • 财富5
    • 积分3065
    • 经验390701
    • 文章6744
    • 注册2006-03-07
    [P]哥们,来个参考TI的,看看人家怎么设置吧[EM01][/P][P][CODE]
    //               MSP430F149
    //            -----------------
    //        /|\|              XIN|-
    //         | |                 | HF XTAL (455k - 8MHz)
    //         --|RST          XOUT|-
    //           |                 |
    //           |         P4.1/TB1|--> CCR1 - 75% PWM
    //           |         P4.2/TB2|--> CCR2 - 25% PWM
    #include  <msp430x14x.h>
    void main(void)
    {
      volatile unsigned int i;
      WDTCTL = WDTPW +WDTHOLD;                  // Stop WDT
      BCSCTL1 |= XTS;                           // ACLK= LFXT1 = HF XTAL
      do
      {
      IFG1 &= ~OFIFG;                           // Clear OSCFault flag
      for (i = 0xFF; i > 0; i--);               // Time for flag to set
      }
      while ((IFG1 & OFIFG));                   // OSCFault flag still set?
      BCSCTL2 |= SELM_3;                        // MCLK= LFXT1 (safe)
      P4DIR |= 0x06;                            // P4.1 and P4.2 output
      P4SEL |= 0x06;                            // P4.2 and P4.2 TB1/2 otions
      TBCCR0 = 128;                             // PWM Period/2
      TBCCTL1 = OUTMOD_6;                       // CCR1 toggle/set
      TBCCR1 = 32;                              // CCR1 PWM duty cycle
      TBCCTL2 = OUTMOD_6;                       // CCR2 toggle/set
      TBCCR2 = 96;                              // CCR2 PWM duty cycle
      TBCTL = TBSSEL_1 + MC_3;                  // ACLK, up-down mode
      _BIS_SR(CPUOFF);                          // Enter LPM0
    }
    [/CODE][/P][P]这种应用一早就该早参考啦...希望能帮助你吧。[/P]
    [COLOR=#0000ff]欢迎发贴分享设计心得、开源DIY...[/COLOR]
    在线情况
    3
    • 头像
    • 级别
      • 积分10
      • 经验107
      • 文章14
      • 注册2011-03-14
      不错的例子,我后来查了一下。发现我的端口设置错误,没办法,刚学的,谢谢这位哥们了,
      微控网感谢您的参与
      在线情况
      4
      • 头像
      • 级别
        • 积分2
        • 经验444
        • 文章5
        • 注册2011-08-01
        [SIZE=4]应该是模式配置出了问题。OUTMOD_7不是我们想要的输出模式。
        [/SIZE]
        微控网感谢您的参与
        Powered by LeadBBS 9.2 .
        Page created in 0.1719 seconds with 5 queries.