|
這個(gè)呼吸燈是參照人視覺(jué)效果寫(xiě)的,非常柔和。代碼如下:
- //包含該文件可以使用_nop_()函數(shù)
- #include <intrins.h>
- unsigned int Num=0; //聲明遞增 遞減變量
- unsigned int Clock=3000; //聲明變量 這個(gè)變量就是肉眼看到的變快變慢的參數(shù)
-
- /***********************************************
- 函數(shù)名稱(chēng):Delay_us
- 功 能:
- 入口參數(shù):us:延時(shí)
- 返 回 值:無(wú)
- 備 注:內(nèi)部時(shí)鐘:24MHz
- ************************************************/
- void Delay_us(unsigned int i) //這個(gè)延時(shí)就是PWM的頻率了 太大眼睛能看到閃來(lái)閃去
- {
- for(;i>0;i--)
- _nop_();
- }
- /***********************************************
- 函數(shù)名稱(chēng):husi_led
- 功 能:呼吸燈
- 入口參數(shù):us:延時(shí)數(shù)量
- 返 回 值:無(wú)
- 備 注:
- ************************************************/
- void husi_led(void)
- {
- while(1)
- {
- for(Num=Clock;Num>0;Num--) //led逐漸變暗
- {
- P05=1; //測(cè)試LED燈
- Delay_us(Num); //3000慢慢減 慢慢變暗
- P05=0; //測(cè)試LED燈
- Delay_us(Clock-Num);
- }
- P05=0; //測(cè)試LED燈
- Delay_ms(1000); //再暗你一秒
- //**************************************//
- for(Num=0;Num<Clock;Num++) //led逐漸變亮
- {
- P05=1; //測(cè)試LED燈
- Delay_us(Num); //0慢慢加 慢慢變亮
- P05=0; //測(cè)試LED燈
- Delay_us(Clock-Num);
- }
- P05=1; //測(cè)試LED燈
- Delay_ms(500); //再亮半秒 這里視覺(jué)的原因 是暗的一半所以選500ms
- }
- }
復(fù)制代碼
|
|