|
本帖最后由 daming 于 2014-12-30 12:37 編輯
在代碼下方點(diǎn)復(fù)制代碼,然后另存到電腦磁盤即可下載.
- /*****************************************************************************
- 單 位:廣西民族大學(xué)物理與電子工程學(xué)院07物本班
- 文件名稱:TimerCommand.h
- 文件標(biāo)識(shí):_TIMERCOMMAND_H_
- 摘 要:AVR定時(shí)器命令通用頭文件
- 當(dāng)前版本:V1.0
- 作 者:【白 羽】
- 完成日期:2010年11月16日
- *****************************************************************************/
- #ifndef _TIMERCOMMAND_H_
- #define _TIMERCOMMAND_H_
-
- #define Timer0Config(MODE,COM,PRESCALE) \
- TCCR0 = WGM0(TimerMode(0,MODE)) | COM0(COM) | CS0(PRESCALE)
- #ifndef OCR1C
- #define Timer1Config(MODE,COMA,COMB,PRESCALE) \
- do{ \
- TCCR1A = WGM1L(TimerMode(1,MODE)) | COM1A(COMA) | COM1B(COMB); \
- TCCR1B = WGM1H(TimerMode(1,MODE)) | CS1(PRESCALE); \
- }while(0)
- #else
- #define Timer1Config(MODE,COMA,COMB,COMC,PRESCALE) \
- do{ \
- TCCR1A = WGM1L(TimerMode(1,MODE)) | COM1A(COMA) \
- | COM1B(COMB) | COM1C(COMC); \
- TCCR1B = WGM1H(TimerMode(1,MODE)) | CS1(PRESCALE); \
- }while(0)
- #endif
- #define Timer2Config(MODE,COM,PRESCALE) \
- TCCR2 = WGM2(TimerMode(2,MODE)) | COM2(COM) | CS2(PRESCALE)
- #define Timer3Config(MODE,COMA,COMB,COMC,PRESCALE) \
- do{ \
- TCCR1A = WGM3L(TimerMode(3,MODE)) | COM3A(COMA) \
- | COM3B(COMB) | COM3C(COMC); \
- TCCR1B = WGM3H(TimerMode(3,MODE)) | CS3(PRESCALE); \
- }while(0)
-
-
- #ifdef OCR0
- #define Timer0Period(STEPS) \
- do{ \
- OCR0 = _OCR0(STEPS); \
- TCCR0 = WGM0(TimerMode(0,CTC) | COM0(0) | _CS0(STEPS); \
- }while(0)
- #endif
- #define Timer1Period(STEPS) \
- do{ \
- OCR1A = _OCR1(STEPS); \
- TCCR1B = WGM1H(TimerMode(1,CTC)) | _CS1(STEPS); \
- }while(0)
- #define Timer2Period(STEPS) \
- do{ \
- OCR2 = _OCR2(STEPS); \
- TCCR2 = WGM2(TimerMode(2,CTC)) | _CS2(STEPS); \
- }while(0)
- #define Timer3Period(STEPS) \
- do{ \
- OCR2 = _OCR3(STEPS); \
- TCCR3A = WGM3H(TimerMode(3,CTC)) | _CS3(STEPS); \
- }while(0)
-
- #define TimerPeriod(X,STEPS) _TimerPeriod(X,STEPS)
- #define _TimerPeriod(X,STEPS) Timer##X##Period(STEPS)
-
- #ifndef CPUCLK
- #define CPUCLK 8.0
- #endif
- #define TimerPerioduS(X,t) TimerPeriod(X,(t)*1.0*CPUCLK)
- #define TimerPeriodmS(X,t) TimerPeriod(X,(t)*1000.0*CPUCLK)
-
-
- #endif
復(fù)制代碼
|
|