#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亮度基本一致。。。还有一个会闪烁。。。求教~!
|