久久久久久久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://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
国产一区在线观看视频
|
欧美在线观看视频
|
国产乱国产乱300精品
|
黄色小视频在线免费观看
|
国产在线欧美
|
中文在线观看免费高清
|
一区二区三区国产精品
|
在线播放国产精品
|
欧美精品网站
|
色六月婷婷
|
伊人av网
|
日韩精品免费
|
亚洲a视频
|
国产成人av一区二区三区在线观看
|
少妇福利视频
|
欧美成人精品一区二区三区
|
特级黄色片
|
伊人网在线视频
|
国产一区二区网站
|
日韩欧美黄色
|
久久不雅视频
|
国产剧情在线
|
躁躁躁日日躁
|
人人爽人人爽人人片av
|
欧美性久久
|
亚洲激情在线播放
|
国产精品久久久久久99
|
天天色播
|
欧美夜夜操
|
亚洲成人免费观看
|
日本中文字幕网站
|
成人激情视频
|
永久在线
|
一级黄色小视频
|
逼逼操
|
国产精品xxx
|
日韩一二三
|
在线观看日本
|
福利在线观看
|
精品在线看
|
欧美一级做性受免费大片免费
|