久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: TimerConvert.h頭文件下載-AVR定時器參數轉換通用頭文件 [打印本頁]

作者: daming    時間: 2014-12-30 12:34
標題: TimerConvert.h頭文件下載-AVR定時器參數轉換通用頭文件
本帖最后由 daming 于 2014-12-30 12:37 編輯

在代碼下方點復制代碼,然后另存到電腦磁盤即可下載.


  1. /*****************************************************************************

  2.       單    位:廣西民族大學物理與電子工程學院07物本班
  3.       文件名稱:TimerConvert.h
  4.       文件標識:_TIMERCONVERT_H_
  5.       摘    要:AVR定時器參數轉換通用頭文件
  6.       當前版本:V1.0
  7.       作    者 【白 羽】
  8.       完成日期:2010年11月16日

  9. *****************************************************************************/
  10. #ifndef  _TIMERCONVERT_H_
  11. #define  _TIMERCONVERT_H_


  12. #define  WGM0(WGM)   (((WGM & 0X01) << 6) | ((WGM & 0X02) << 3))
  13. #define  WGM1L(WGM)  (WGM & 0X03)
  14. #define  WGM1H(WGM)  (((WGM) & 0X0C) << 1)
  15. #define  WGM2(WGM)   (((WGM & 0X01) << 6) | ((WGM & 0X02) << 3))
  16. #define  WGM3L(WGM)  (WGM & 0X03)
  17. #define  WGM3H(WGM)  (((WGM) & 0X0C) << 1)


  18. #define  COM0(COM)   ((COM) << 4)

  19. #define  COM1A(COM)  ((COM) << 6)
  20. #define  COM1B(COM)  ((COM) << 4)
  21. #define  COM1C(COM)  ((COM) << 2)

  22. #define  COM2(COM)   ((COM) << 4)

  23. #define  COM3A(COM)  ((COM) << 6)
  24. #define  COM3B(COM)  ((COM) << 4)
  25. #define  COM3C(COM)  ((COM) << 2)


  26. /*****************************************************************************
  27. PRESCALE --> CSX[2:0]
  28. 說明:CS2(PRESCALE)使用了條件編譯,這個條件編譯是基于如下假設:對于具有定時/計
  29. 數器3的AVR單片機,定時/計數器2不存在外部輸入引腳; 對于沒有定時/計數器3的AVR單
  30. 單片機,定時/計數器2必存在外部輸入引腳。這是一個尚未證明的假設。   ^_^
  31. 另外,如果輸入的分頻系數不對,則強制CSX[2:0]=0,定時/計數器拒絕運行。
  32. *****************************************************************************/
  33. #define  CS0(PRESCALE)                                        \
  34.    (                                                          \
  35.       (PRESCALE) == 0   ? 0 :                                 \
  36.       (PRESCALE) == 1   ? 1 :                                 \
  37.       (PRESCALE) == 8   ? 2 :                                 \
  38.       (PRESCALE) == 64  ? 3 :                                 \
  39.       (PRESCALE) == 256 ? 4 :                                 \
  40.       (PRESCALE) == 1024? 5 : 0                               \
  41.    )

  42. #define  CS1(PRESCALE)                                        \
  43.    (                                                          \
  44.       (PRESCALE) == 0   ? 0 :                                 \
  45.       (PRESCALE) == 1   ? 1 :                                 \
  46.       (PRESCALE) == 8   ? 2 :                                 \
  47.       (PRESCALE) == 64  ? 3 :                                 \
  48.       (PRESCALE) == 256 ? 4 :                                 \
  49.       (PRESCALE) == 1024? 5 : 0                               \
  50.    )

  51. #ifndef  TCNT3
  52. #define  CS2(PRESCALE)                                        \
  53.    (                                                          \
  54.       (PRESCALE) == 0   ? 0 :                                 \
  55.       (PRESCALE) == 1   ? 1 :                                 \
  56.       (PRESCALE) == 8   ? 2 :                                 \
  57.       (PRESCALE) == 64  ? 3 :                                 \
  58.       (PRESCALE) == 256 ? 4 :                                 \
  59.       (PRESCALE) == 1024? 5 : 0                               \
  60.    )
  61. #else
  62. #define  CS2(PRESCALE)                                        \
  63.    (                                                          \
  64.       (PRESCALE) == 0   ? 0 :                                 \
  65.       (PRESCALE) == 1   ? 1 :                                 \
  66.       (PRESCALE) == 8   ? 2 :                                 \
  67.       (PRESCALE) == 32  ? 3 :                                 \
  68.       (PRESCALE) == 64  ? 4 :                                 \
  69.       (PRESCALE) == 128 ? 5 :                                 \
  70.       (PRESCALE) == 256 ? 6 :                                 \
  71.       (PRESCALE) == 1024? 7 : 0                               \
  72.    )
  73. #endif

  74. #define  CS3(PRESCALE)                                        \
  75.    (                                                          \
  76.       (PRESCALE) == 0   ? 0 :                                 \
  77.       (PRESCALE) == 1   ? 1 :                                 \
  78.       (PRESCALE) == 8   ? 2 :                                 \
  79.       (PRESCALE) == 64  ? 3 :                                 \
  80.       (PRESCALE) == 256 ? 4 :                                 \
  81.       (PRESCALE) == 1024? 5 : 0                               \
  82.    )


  83. /*****************************************************************************
  84. STEPS --> OCRX
  85. 說明:CS2(PRESCALE)使用了條件編譯,這個條件編譯是基于如下假設:對于具有定時/計
  86. 數器3的AVR單片機,定時/計數器2不存在外部輸入引腳; 對于沒有定時/計數器3的AVR單
  87. 單片機,定時/計數器2必存在外部輸入引腳。這是一個尚未證明的假設。   ^_^
  88. *****************************************************************************/
  89. #define  _OCR0(STEPS)                                         \
  90.    (                                                          \
  91.       (STEPS) <= 256 ? ((STEPS) - 1) :                        \
  92.       (STEPS) <= 256*8 ? ((STEPS)/8 - 1) :                    \
  93.       (STEPS) <= 256*64 ? ((STEPS)/64 - 1) :                  \
  94.       (STEPS) <= 256*256 ? ((STEPS)/256 - 1) :                \
  95.       (STEPS) <= 256*1024 ? ((STEPS)/1024 - 1) : 255          \
  96.    )

  97. #define  _OCR1(STEPS)                                         \
  98.    (                                                          \
  99.       (STEPS) <= 65536 ? ((STEPS) - 1) :                      \
  100.       (STEPS) <= 65536*8 ? ((STEPS)/8 - 1) :                  \
  101.       (STEPS) <= 65536*64 ? ((STEPS)/64 - 1) :                \
  102.       (STEPS) <= 65536*256 ? ((STEPS)/256 - 1) :              \
  103.       (STEPS) <= 65536*1024 ? ((STEPS)/1024 - 1) : 65535      \
  104.    )

  105. #ifndef  TCNT3
  106. #define  _OCR2(STEPS)                                         \
  107.    (                                                          \
  108.       (STEPS) <= 256 ? ((STEPS) - 1) :                        \
  109.       (STEPS) <= 256*8 ? ((STEPS)/8 - 1) :                    \
  110.       (STEPS) <= 256*64 ? ((STEPS)/64 - 1) :                  \
  111.       (STEPS) <= 256*256 ? ((STEPS)/256 - 1) :                \
  112.       (STEPS) <= 256*1024 ? ((STEPS)/1024 - 1) : 255          \
  113.    )
  114. #else
  115. #define  _OCR2(STEPS)                                         \
  116.    (                                                          \
  117.       (STEPS) <= 256 ? ((STEPS) - 1) :                        \
  118.       (STEPS) <= 256*8 ? ((STEPS)/8 - 1) :                    \
  119.       (STEPS) <= 256*32 ? ((STEPS)/32 - 1) :                  \
  120.       (STEPS) <= 256*64 ? ((STEPS)/64 - 1) :                  \
  121.       (STEPS) <= 256*128 ? ((STEPS)/128 - 1) :                \
  122.       (STEPS) <= 256*256 ? ((STEPS)/256 - 1) :                \
  123.       (STEPS) <= 256*1024 ? ((STEPS)/1024 - 1) : 255          \
  124.    )
  125. #endif

  126. #define  _OCR3(STEPS)                                         \
  127.    (                                                          \
  128.       (STEPS) <= 65536 ? ((STEPS) - 1) :                      \
  129.       (STEPS) <= 65536*8 ? ((STEPS)/8 - 1) :                  \
  130.       (STEPS) <= 65536*64 ? ((STEPS)/64 - 1) :                \
  131.       (STEPS) <= 65536*256 ? ((STEPS)/256 - 1) :              \
  132.       (STEPS) <= 65536*1024 ? ((STEPS)/1024 - 1) : 65535      \
  133.    )


  134. /*****************************************************************************
  135. //STEPS --> CSX[2:0]
  136. 說明:CS2(PRESCALE)使用了條件編譯,這個條件編譯是基于如下假設:對于具有定時/計
  137. 數器3的AVR單片機,定時/計數器2不存在外部輸入引腳; 對于沒有定時/計數器3的AVR單
  138. 單片機,定時/計數器2必存在外部輸入引腳。這是一個尚未證明的假設。   ^_^
  139. *****************************************************************************/
  140. #define  _CS0(STEPS)                                          \
  141.    (                                                          \
  142.       (STEPS) == 0 ? 0 :                                      \
  143.       (STEPS) <= 256 ? 1 :                                    \
  144.       (STEPS) <= 256*8 ? 2 :                                  \
  145.       (STEPS) <= 256*64 ? 3 :                                 \
  146.       (STEPS) <= 256*256 ? 4 : 5                              \
  147.    )

  148. #define  _CS1(STEPS)                                          \
  149.    (                                                          \
  150.       (STEPS) == 0 ? 0 :                                      \
  151.       (STEPS) <= 65536 ? 1 :                                  \
  152.       (STEPS) <= 65536*8 ? 2 :                                \
  153.       (STEPS) <= 65536*64 ? 3 :                               \
  154.       (STEPS) <= 65536*256 ? 4 : 5                            \
  155.    )


  156. #ifndef  TCNT3
  157. #define  _CS2(STEPS)                                          \
  158.    (                                                          \
  159.       (STEPS) == 0 ? 0 :                                      \
  160.       (STEPS) <= 256 ? 1 :                                    \
  161.       (STEPS) <= 256*8 ? 2 :                                  \
  162.       (STEPS) <= 256*32 ? 3 :                                 \
  163.       (STEPS) <= 256*64 ? 4 :                                 \
  164.       (STEPS) <= 256*128 ? 5 :                                \
  165.       (STEPS) <= 256*256 ? 6 : 7                              \
  166.    )
  167. #else
  168. #define  _CS2(STEPS)                                          \
  169.    (                                                          \
  170.       (STEPS) == 0 ? 0 :                                      \
  171.       (STEPS) <= 256 ? 1 :                                    \
  172.       (STEPS) <= 256*8 ? 2 :                                  \
  173.       (STEPS) <= 256*64 ? 3 :                                 \
  174.       (STEPS) <= 256*256 ? 4 : 5                              \
  175.    )
  176. #endif


  177. #define  _CS3(STEPS)                                          \
  178.    (                                                          \
  179.       (STEPS) == 0 ? 0 :                                      \
  180.       (STEPS) <= 65536 ? 1 :                                  \
  181.       (STEPS) <= 65536*8 ? 2 :                                \
  182.       (STEPS) <= 65536*64 ? 3 :                               \
  183.       (STEPS) <= 65536*256 ? 4 : 5                            \
  184.    )



  185. #endif
復制代碼








歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 成人午夜电影在线观看 | 国产无套一区二区三区久久 | 国产精品久久久久一区二区三区 | 亚洲成av人影片在线观看 | 日韩中文一区二区三区 | 少妇淫片aaaaa毛片叫床爽 | 久久成人精品视频 | 中文字幕观看 | 午夜精品久久久久久久久久久久久 | 中国一级特黄视频 | 亚洲91精品 | 性高湖久久久久久久久 | 日韩欧美在线免费 | av一区二区三区四区 | 国产免费视频 | 人人鲁人人莫人人爱精品 | 色爽女| 成人在线观看网址 | www.99热.com| 浴室洗澡偷拍一区二区 | 一区二区三区四区免费视频 | 天堂av中文在线 | 国产97在线视频 | 国产一区在线免费观看视频 | 99在线国产 | 在线看免费 | 精品一区视频 | 亚洲嫩草 | 91免费在线看 | 久久天天躁狠狠躁夜夜躁2014 | 国产精品一区二区福利视频 | 手机在线观看 | 九九爱这里只有精品 | 99中文字幕| 国产视频一区在线 | 欧美不卡 | 精品久久中文 | 精品乱码一区二区三四区视频 | 九九精品影院 | 中文字幕成人免费视频 | 久久亚洲欧美日韩精品专区 |