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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3796|回復: 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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久色视频 | 99视频在线 | 91文字幕巨乱亚洲香蕉 | 欧美色综合一区二区三区 | 伊人网伊人网 | 欧美一级黄色片 | 色婷婷亚洲国产女人的天堂 | www.国产| 久久久久国产精品午夜一区 | www国产成人免费观看视频,深夜成人网 | 国产精品成人一区二区三区 | 日日操夜夜操天天操 | 91麻豆精品国产91久久久更新资源速度超快 | 欧美一级久久 | 亚洲综合99| 在线看无码的免费网站 | 国产精品国产a级 | 在线观看日本高清二区 | aaaa一级毛片 | 丁香婷婷久久久综合精品国产 | 最新中文字幕在线 | 日本亚洲一区二区 | 91中文视频 | 国产91精品久久久久久久网曝门 | 在线观看免费毛片 | 欧美不卡视频一区发布 | 毛片99 | 欧美一级久久 | 国产精品久久久久久久7电影 | av天天澡天天爽天天av | 午夜在线影院 | 91视频免费 | 日日干干 | 欧美极品一区二区 | 国产a级毛片 | 日日干夜夜操 | 黄色av网站免费看 | 久久视频精品 | 精品欧美一区二区三区久久久 | 99在线免费观看视频 | 欧美日韩亚洲视频 |