久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
TimerConvert.h頭文件下載-AVR定時器參數轉換通用頭文件
[打印本頁]
作者:
daming
時間:
2014-12-30 12:34
標題:
TimerConvert.h頭文件下載-AVR定時器參數轉換通用頭文件
本帖最后由 daming 于 2014-12-30 12:37 編輯
在代碼下方點復制代碼,然后另存到電腦磁盤即可下載.
/*****************************************************************************
單 位:廣西民族大學物理與電子工程學院07物本班
文件名稱:TimerConvert.h
文件標識:_TIMERCONVERT_H_
摘 要:AVR定時器參數轉換通用頭文件
當前版本:V1.0
作 者 【白 羽】
完成日期:2010年11月16日
*****************************************************************************/
#ifndef _TIMERCONVERT_H_
#define _TIMERCONVERT_H_
#define WGM0(WGM) (((WGM & 0X01) << 6) | ((WGM & 0X02) << 3))
#define WGM1L(WGM) (WGM & 0X03)
#define WGM1H(WGM) (((WGM) & 0X0C) << 1)
#define WGM2(WGM) (((WGM & 0X01) << 6) | ((WGM & 0X02) << 3))
#define WGM3L(WGM) (WGM & 0X03)
#define WGM3H(WGM) (((WGM) & 0X0C) << 1)
#define COM0(COM) ((COM) << 4)
#define COM1A(COM) ((COM) << 6)
#define COM1B(COM) ((COM) << 4)
#define COM1C(COM) ((COM) << 2)
#define COM2(COM) ((COM) << 4)
#define COM3A(COM) ((COM) << 6)
#define COM3B(COM) ((COM) << 4)
#define COM3C(COM) ((COM) << 2)
/*****************************************************************************
PRESCALE --> CSX[2:0]
說明:CS2(PRESCALE)使用了條件編譯,這個條件編譯是基于如下假設:對于具有定時/計
數器3的AVR單片機,定時/計數器2不存在外部輸入引腳; 對于沒有定時/計數器3的AVR單
單片機,定時/計數器2必存在外部輸入引腳。這是一個尚未證明的假設。 ^_^
另外,如果輸入的分頻系數不對,則強制CSX[2:0]=0,定時/計數器拒絕運行。
*****************************************************************************/
#define CS0(PRESCALE) \
( \
(PRESCALE) == 0 ? 0 : \
(PRESCALE) == 1 ? 1 : \
(PRESCALE) == 8 ? 2 : \
(PRESCALE) == 64 ? 3 : \
(PRESCALE) == 256 ? 4 : \
(PRESCALE) == 1024? 5 : 0 \
)
#define CS1(PRESCALE) \
( \
(PRESCALE) == 0 ? 0 : \
(PRESCALE) == 1 ? 1 : \
(PRESCALE) == 8 ? 2 : \
(PRESCALE) == 64 ? 3 : \
(PRESCALE) == 256 ? 4 : \
(PRESCALE) == 1024? 5 : 0 \
)
#ifndef TCNT3
#define CS2(PRESCALE) \
( \
(PRESCALE) == 0 ? 0 : \
(PRESCALE) == 1 ? 1 : \
(PRESCALE) == 8 ? 2 : \
(PRESCALE) == 64 ? 3 : \
(PRESCALE) == 256 ? 4 : \
(PRESCALE) == 1024? 5 : 0 \
)
#else
#define CS2(PRESCALE) \
( \
(PRESCALE) == 0 ? 0 : \
(PRESCALE) == 1 ? 1 : \
(PRESCALE) == 8 ? 2 : \
(PRESCALE) == 32 ? 3 : \
(PRESCALE) == 64 ? 4 : \
(PRESCALE) == 128 ? 5 : \
(PRESCALE) == 256 ? 6 : \
(PRESCALE) == 1024? 7 : 0 \
)
#endif
#define CS3(PRESCALE) \
( \
(PRESCALE) == 0 ? 0 : \
(PRESCALE) == 1 ? 1 : \
(PRESCALE) == 8 ? 2 : \
(PRESCALE) == 64 ? 3 : \
(PRESCALE) == 256 ? 4 : \
(PRESCALE) == 1024? 5 : 0 \
)
/*****************************************************************************
STEPS --> OCRX
說明:CS2(PRESCALE)使用了條件編譯,這個條件編譯是基于如下假設:對于具有定時/計
數器3的AVR單片機,定時/計數器2不存在外部輸入引腳; 對于沒有定時/計數器3的AVR單
單片機,定時/計數器2必存在外部輸入引腳。這是一個尚未證明的假設。 ^_^
*****************************************************************************/
#define _OCR0(STEPS) \
( \
(STEPS) <= 256 ? ((STEPS) - 1) : \
(STEPS) <= 256*8 ? ((STEPS)/8 - 1) : \
(STEPS) <= 256*64 ? ((STEPS)/64 - 1) : \
(STEPS) <= 256*256 ? ((STEPS)/256 - 1) : \
(STEPS) <= 256*1024 ? ((STEPS)/1024 - 1) : 255 \
)
#define _OCR1(STEPS) \
( \
(STEPS) <= 65536 ? ((STEPS) - 1) : \
(STEPS) <= 65536*8 ? ((STEPS)/8 - 1) : \
(STEPS) <= 65536*64 ? ((STEPS)/64 - 1) : \
(STEPS) <= 65536*256 ? ((STEPS)/256 - 1) : \
(STEPS) <= 65536*1024 ? ((STEPS)/1024 - 1) : 65535 \
)
#ifndef TCNT3
#define _OCR2(STEPS) \
( \
(STEPS) <= 256 ? ((STEPS) - 1) : \
(STEPS) <= 256*8 ? ((STEPS)/8 - 1) : \
(STEPS) <= 256*64 ? ((STEPS)/64 - 1) : \
(STEPS) <= 256*256 ? ((STEPS)/256 - 1) : \
(STEPS) <= 256*1024 ? ((STEPS)/1024 - 1) : 255 \
)
#else
#define _OCR2(STEPS) \
( \
(STEPS) <= 256 ? ((STEPS) - 1) : \
(STEPS) <= 256*8 ? ((STEPS)/8 - 1) : \
(STEPS) <= 256*32 ? ((STEPS)/32 - 1) : \
(STEPS) <= 256*64 ? ((STEPS)/64 - 1) : \
(STEPS) <= 256*128 ? ((STEPS)/128 - 1) : \
(STEPS) <= 256*256 ? ((STEPS)/256 - 1) : \
(STEPS) <= 256*1024 ? ((STEPS)/1024 - 1) : 255 \
)
#endif
#define _OCR3(STEPS) \
( \
(STEPS) <= 65536 ? ((STEPS) - 1) : \
(STEPS) <= 65536*8 ? ((STEPS)/8 - 1) : \
(STEPS) <= 65536*64 ? ((STEPS)/64 - 1) : \
(STEPS) <= 65536*256 ? ((STEPS)/256 - 1) : \
(STEPS) <= 65536*1024 ? ((STEPS)/1024 - 1) : 65535 \
)
/*****************************************************************************
//STEPS --> CSX[2:0]
說明:CS2(PRESCALE)使用了條件編譯,這個條件編譯是基于如下假設:對于具有定時/計
數器3的AVR單片機,定時/計數器2不存在外部輸入引腳; 對于沒有定時/計數器3的AVR單
單片機,定時/計數器2必存在外部輸入引腳。這是一個尚未證明的假設。 ^_^
*****************************************************************************/
#define _CS0(STEPS) \
( \
(STEPS) == 0 ? 0 : \
(STEPS) <= 256 ? 1 : \
(STEPS) <= 256*8 ? 2 : \
(STEPS) <= 256*64 ? 3 : \
(STEPS) <= 256*256 ? 4 : 5 \
)
#define _CS1(STEPS) \
( \
(STEPS) == 0 ? 0 : \
(STEPS) <= 65536 ? 1 : \
(STEPS) <= 65536*8 ? 2 : \
(STEPS) <= 65536*64 ? 3 : \
(STEPS) <= 65536*256 ? 4 : 5 \
)
#ifndef TCNT3
#define _CS2(STEPS) \
( \
(STEPS) == 0 ? 0 : \
(STEPS) <= 256 ? 1 : \
(STEPS) <= 256*8 ? 2 : \
(STEPS) <= 256*32 ? 3 : \
(STEPS) <= 256*64 ? 4 : \
(STEPS) <= 256*128 ? 5 : \
(STEPS) <= 256*256 ? 6 : 7 \
)
#else
#define _CS2(STEPS) \
( \
(STEPS) == 0 ? 0 : \
(STEPS) <= 256 ? 1 : \
(STEPS) <= 256*8 ? 2 : \
(STEPS) <= 256*64 ? 3 : \
(STEPS) <= 256*256 ? 4 : 5 \
)
#endif
#define _CS3(STEPS) \
( \
(STEPS) == 0 ? 0 : \
(STEPS) <= 65536 ? 1 : \
(STEPS) <= 65536*8 ? 2 : \
(STEPS) <= 65536*64 ? 3 : \
(STEPS) <= 65536*256 ? 4 : 5 \
)
#endif
復制代碼
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
成人午夜电影在线观看
|
国产无套一区二区三区久久
|
国产精品久久久久一区二区三区
|
亚洲成av人影片在线观看
|
日韩中文一区二区三区
|
少妇淫片aaaaa毛片叫床爽
|
久久成人精品视频
|
中文字幕观看
|
午夜精品久久久久久久久久久久久
|
中国一级特黄视频
|
亚洲91精品
|
性高湖久久久久久久久
|
日韩欧美在线免费
|
av一区二区三区四区
|
国产免费视频
|
人人鲁人人莫人人爱精品
|
色爽女
|
成人在线观看网址
|
www.99热.com
|
浴室洗澡偷拍一区二区
|
一区二区三区四区免费视频
|
天堂av中文在线
|
国产97在线视频
|
国产一区在线免费观看视频
|
99在线国产
|
在线看免费
|
精品一区视频
|
亚洲嫩草
|
91免费在线看
|
久久天天躁狠狠躁夜夜躁2014
|
国产精品一区二区福利视频
|
手机在线观看
|
九九爱这里只有精品
|
99中文字幕
|
国产视频一区在线
|
欧美不卡
|
精品久久中文
|
精品乱码一区二区三四区视频
|
九九精品影院
|
中文字幕成人免费视频
|
久久亚洲欧美日韩精品专区
|