打印

430,用timerA输出PWM求助!!

[复制链接]
1061|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
包子lxy|  楼主 | 2013-7-20 11:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <msp430.h>


int main(void)
{
        while(1)
        {
    WDTCTL = WDTPW | WDTHOLD;        // Stop watchdog timer


/*******************************************************************
        端口定义
*******************************************************************/
        P1DIR|=BIT2+BIT6;//输出
        P1SEL|=BIT2+BIT6;//选择第二功能
/*******************************************************************
                中断设置
*******************************************************************/
        P1IE |= BIT0;                         // P1.3 interrupt enabled
        P1IES |= BIT0;                          // P1.3 Hi/lo edge
/*******************************************************************
        设置定时器A,设定PWM模式
*******************************************************************/
        TACTL = TASSEL_1 + MC_1;      // SMCLK, contmode,选择时钟源(子时钟),选择计数模式(增减计数),清零计时器
        CCR0=512;                                   //设定增减变换临界点,PWM周期(256)
        CCR1 = 256;              //设定占空比 (100%)    TACCRX/256=占空比
        CCR2 = 128;               //设定占空比(50%)
        CCTL1=OUTMOD_7;                         //选择输出模式7
        CCTL2=OUTMOD_7;                    //选择输出模式7(PWM),当计至TACCRX,0;TACCR0,1;
        for (;;)
           {_BIS_SR(LPM3+GIE);                 // 进入 LPM3
             _NOP();
           }                                                //低功耗模式3
       
        }

}



上面是我写的程序。。。我的目的是连LED,看到两个LED亮度不同,相差50%。。可是实际情况是两个LED亮度基本一致。。。还有一个会闪烁。。。求教~!

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

28

主题

95

帖子

0

粉丝