|
利用改变占空比的方法,控制LED的亮度。 第一次用430,有需要改进的地方,还请多多指教。
#include #define uchar unsigned char #define uint unsigned int
#define CPU_F ((double)1000000) //定义系统MCLK的频率 //延时1us #define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0)) //延时1ms #define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))
void main(void) { uchar k=1;
WDTCTL=WDTPW+WDTHOLD; //停止看门狗工作 P1DIR=0XFF&(~BIT3); //设置P1.3为输入,其它为输出 P1OUT=0; P1SEL=0X40;
TACTL=TASSEL_2+MC_1; //设置计数器的时钟为SMCLK
TACCR0=0X7ff;
TACCR1=0x7f0; TACCTL1=OUTMOD_3; //模式3
while(1) { if(k==0) { if(TACCR1>=0X700) k=1; else TACCR1+=1; } else { if(TACCR1<=5) k=0; else TACCR1-=1; } delay_ms(1); } }
|
|