色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

電子發燒友App

硬聲App

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
電子發燒友網>電子資料下載>電子資料>Arduino Nano上的自定義定時器功能

Arduino Nano上的自定義定時器功能

2022-10-26 | zip | 0.03 MB | 次下載 | 免費

資料介紹

描述

時間敏感的任務

幾乎所有使用微控制器的項目都具有某種與時間相關的組件,例如延遲或重復任務。內部定時器電路通過對從預分頻器或時鐘直接獲得的每個脈沖進行計數來啟用此功能。

pYYBAGNYf9uACBlRAABvtWOTcZY288.png
?

通過獲取此計數器的值,您可以確定已經過去了多少時間。例如,如果 MCU 的時鐘設置為 125KHz,其中一個定時器設置為使用該時鐘,并且其預分頻器設置為 1/1024,則其計數器寄存器的每個增量大約等于 1/122 秒,這源自:

t = 1 / (CLK / prescaler)

所以(1/122) = 1 / (125000 / 1024)

如果您好奇,預分頻器的工作是將輸入的時鐘脈沖除以某個值,這會使計數器減慢該因子。因此,預分頻值為 4 的定時器會將 8Mhz 的系統時鐘視為 2MHz。Arduino 的 millis()、delay() 和 micros() 都依賴這些定時器來操作。但是有一個問題:delay() 是阻塞的,為了使它成為非阻塞,你必須在每個循環中檢查 millis() 的值。

改用中斷

為了避免這個問題,ATmega328P 的定時器可以設置為在幾個不同的觸發器上觸發中斷。其中之一是溢出標志,每當計數器寄存器從其最大值翻轉到 0 時都會設置該標志,例如 8 位寄存器從 255 變為 0。觸發中斷的另一種方法是使用比較寄存器,它存儲一個與計數器連續檢查的值,并在計數器達到該值時引發中斷。ATmega328P 等微控制器使用這種功能來控制引腳上的 PWM,而其他更高級的 MCU 能夠直接從定時器切換引腳,而完全不需要 CPU。

設置硬件

對于這個例子,我創建了一個簡單的程序,它為 ATmega328P 的 Timer/Counter2 設置一個比較值,在比較匹配 A 上觸發一個中斷,并切換一個引腳的值。這方面的所有細節都可以在微控制器的數據表中找到。代碼首先調用 hardware_setup() 函數,其中設置了幾個寄存器來配置系統、定時器和引腳。(1 << DDD2)通過將 的值放入寄存器,將數字引腳 2 設置為輸出。DDRD接下來,通過將 1 放入 TCCR2B 寄存器的時鐘選擇位字段來設置定時器 2 的預分頻器,將預分頻器設置為 1/1024。

poYBAGNYf92ATwYJAACLa44sLXs591.png
?

接下來,將 255 的值放入比較寄存器 A ( OCR2A),這意味著當計數器到達 255 時將發生事件。TIMSK2寄存器得到一個值(1 << OCIE2A)放入其中,這讓定時器 2 在比較匹配時輸出中斷A 被觸發。最后,在每次比較匹配時也TCCR2A獲得一個(1 << COM2A0)切換的值。D12

poYBAGNYf9-AGuQrAABcpd-JQaw655.png
?

程序執行和最終想法

雖然我們設置了TIMSK2寄存器觸發中斷,但還是需要處理的。這是通過創建將在引發中斷時觸發的 ISR(中斷服務程序)來實現的。在附加的代碼中,ISR 增加一個計數器并清除標志。在 main() 的 while 循環中,檢查計數器變量以查看它何時達到 100,如果達到了,則通過執行 XOR 操作來切換 D2 的值,如下所示:PORTD ^= (1 << PORTD2);

使count變量 volatile 很重要,因為它告訴編譯器它的值可以在程序正常執行路徑之外的任何時間更改。該程序應通過編程器刷新到 Nano。不要將 Arduino 函數與自定義定時器一起使用,因為這會弄亂你的定時器和內置函數。

pYYBAGNYf-KARnD_AADZHYgfQDY147.png
?

使用此代碼,連接到引腳 2 的 LED 應每 2.5 秒閃爍一次。嘗試更改不同的值或在各種模式下設置其他計時器。

?
?

?


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數據手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
主站蜘蛛池模板: 69久久国产露脸精品国产| 美女隐私黄www视频| 国产不卡免费| 超碰97人人做人人爱少妇| 9277高清在线观看视频| 中文无码字慕在线观看| 夜夜女人国产香蕉久久精品| 亚洲精品无码葡京AV天堂| 亚洲AV无码一区二区三区乱子伦| 熟女人妻AV五十路六十路| 色色激情网| 特级毛片内射WWW无码| 同桌别揉我奶了嗯啊| 天天久久狠狠色综合| 天天狠狠色噜噜| 亚久久伊人精品青青草原2020| 小草观看免费高清视频| 亚洲AV一宅男色影视| 亚洲蜜桃AV色情精品成人| 亚洲免费一| 中文字幕无码亚洲字幕成A人蜜桃| 中文视频在线观看| 4399的视频BD高清在线观看免费| 99精品免费在线观看| 暗卫受被肉到失禁各种PLAY| 大胆国模一区二区三区伊人| 国产高清美女一级毛片久久| 国产三级影院| 久久人人玩人妻潮喷内射人人| 啦啦啦 中文 中国 免费 高清在线| 六六影院午夜伦理| 欧美日韩一区在线观看| 视频在线免费观看| 亚洲精品在线看| 5278欧美一区二区三区| 苍井空小公主qvod| 国产亚洲999精品AA片在线爽| 精品亚洲大全| 欧美午夜精品一区二区蜜桃 | 99视频免视看| 粗好大用力好深快点漫画|