#include "msp430f5529.h"
//P2.1 TA1.2
void delay(unsigned int ms)
{
int x,y;
for(x=ms; x>0; x--)
for(y=500; y>0;y--);
}
int i;//设置占空比
unsigned char dir; //i增减方向,非0为增
int main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
P2DIR |= BIT1;
P2SEL |= BIT1;
TA1CTL = TACLR + TASSEL_2 + TAIE;
//计数值清零 时钟选择SMCLK 中断允许
TA1CCTL2 |= OUTMOD_7;
TA1CCR0 =1024;
i = 0;
dir = 1;
TA1CTL |= MC_1;
TA1CCR2 = 128;
while(1)
{
TA1CCR2 = i;
//delay(500);
if(dir <1 && i >0 ) i -= 30;
if(dir >0 && i <1024) i += 30;
if(dir >0 && i >=1024) dir = 0;
if(dir <1 && i <50 ) dir = 1;
delay(30);
}
while(1);
return 0;
}
//*****************************************************************************************
板子用的SEED_EXP430F5529v1.0
IO引出非常之乱和不全
能输出PWM的仅有一两个口,所以选了个非主流的TA1.2
//******************再分割*****************************************************************
程序烧写之后
只需在P2.0(即TA1.2)接一个LED加200R-1K的限流电阻即可观赏呼吸灯效果
其他板子请自行对照datasheet找到TA1.2所对应的口
或是修改程序中PWM输出设置 |