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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3740|回復: 0
打印 上一主題 下一主題
收起左側

TimerConvert.h頭文件下載-AVR定時器參數轉換通用頭文件

[復制鏈接]
跳轉到指定樓層
樓主
ID:71259 發表于 2014-12-30 12:34 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 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
復制代碼



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲国产黄 | 91av在线免费播放 | 欧美日本韩国一区二区 | 亚洲免费观看 | 网站黄色在线 | 亚洲精品一区二区三区在线 | 婷婷开心激情综合五月天 | 国产区精品 | 午夜影院视频在线观看 | 亚洲成人免费视频 | 黄色片大全在线观看 | 日韩一区欧美一区 | 九九精品网 | 国产精品www | 天堂资源| 亚洲a一区二区 | 2021天天干夜夜爽 | 久久久精品网 | 一区二区国产精品 | 国产精品免费在线 | 黄网免费 | 亚洲一区在线日韩在线深爱 | 日韩伦理电影免费在线观看 | 欧美一级二级三级视频 | 精品久久久一区二区 | 黄色一级毛片 | 国产一区在线免费 | 五月综合激情婷婷 | 国产精品美女久久久久久久网站 | 亚洲精品一区二区三区在线 | 久久综合久久综合久久综合 | 一区二区三区四区av | 国产精品成av人在线视午夜片 | 国产亚洲欧美在线 | 亚洲欧美国产毛片在线 | 精品乱码一区二区三四区 | 日韩精品一区二区三区在线观看 | 一区二区三区四区在线 | 欧美日韩综合视频 | 在线成人一区 | 999久久久免费精品国产 |