一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>Arduino Nano上的自定義定時(shí)器功能

Arduino Nano上的自定義定時(shí)器功能

2022-10-26 | zip | 0.03 MB | 次下載 | 免費(fèi)

資料介紹

描述

時(shí)間敏感的任務(wù)

幾乎所有使用微控制器的項(xiàng)目都具有某種與時(shí)間相關(guān)的組件,例如延遲或重復(fù)任務(wù)。內(nèi)部定時(shí)器電路通過對從預(yù)分頻器或時(shí)鐘直接獲得的每個(gè)脈沖進(jìn)行計(jì)數(shù)來啟用此功能。

pYYBAGNYf9uACBlRAABvtWOTcZY288.png
?

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

t = 1 / (CLK / prescaler)

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

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

改用中斷

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

設(shè)置硬件

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

poYBAGNYf92ATwYJAACLa44sLXs591.png
?

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

poYBAGNYf9-AGuQrAABcpd-JQaw655.png
?

程序執(zhí)行和最終想法

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

使count變量 volatile 很重要,因?yàn)樗嬖V編譯器它的值可以在程序正常執(zhí)行路徑之外的任何時(shí)間更改。該程序應(yīng)通過編程器刷新到 Nano。不要將 Arduino 函數(shù)與自定義定時(shí)器一起使用,因?yàn)檫@會弄亂你的定時(shí)器和內(nèi)置函數(shù)。

pYYBAGNYf-KARnD_AADZHYgfQDY147.png
?

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

?
?

?


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

評論

查看更多

下載排行

本周

  1. 1DD3118電路圖紙資料
  2. 0.08 MB   |  1次下載  |  免費(fèi)
  3. 2AD庫封裝庫安裝教程
  4. 0.49 MB   |  1次下載  |  免費(fèi)
  5. 3PC6206 300mA低功耗低壓差線性穩(wěn)壓器中文資料
  6. 1.12 MB   |  1次下載  |  免費(fèi)
  7. 4網(wǎng)絡(luò)安全從業(yè)者入門指南
  8. 2.91 MB   |  1次下載  |  免費(fèi)
  9. 5DS-CS3A P00-CN-V3
  10. 618.05 KB  |  1次下載  |  免費(fèi)
  11. 6海川SM5701規(guī)格書
  12. 1.48 MB  |  次下載  |  免費(fèi)
  13. 7H20PR5電磁爐IGBT功率管規(guī)格書
  14. 1.68 MB   |  次下載  |  1 積分
  15. 8IP防護(hù)等級說明
  16. 0.08 MB   |  次下載  |  免費(fèi)

本月

  1. 1貼片三極管上的印字與真實(shí)名稱的對照表詳細(xì)說明
  2. 0.50 MB   |  103次下載  |  1 積分
  3. 2涂鴉各WiFi模塊原理圖加PCB封裝
  4. 11.75 MB   |  89次下載  |  1 積分
  5. 3錦銳科技CA51F2 SDK開發(fā)包
  6. 24.06 MB   |  43次下載  |  1 積分
  7. 4錦銳CA51F005 SDK開發(fā)包
  8. 19.47 MB   |  19次下載  |  1 積分
  9. 5PCB的EMC設(shè)計(jì)指南
  10. 2.47 MB   |  16次下載  |  1 積分
  11. 6HC05藍(lán)牙原理圖加PCB
  12. 15.76 MB   |  13次下載  |  1 積分
  13. 7802.11_Wireless_Networks
  14. 4.17 MB   |  12次下載  |  免費(fèi)
  15. 8蘋果iphone 11電路原理圖
  16. 4.98 MB   |  6次下載  |  2 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935127次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
  4. 1.48MB  |  420064次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233089次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191390次下載  |  10 積分
  9. 5十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
  10. 158M  |  183342次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81588次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73815次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65989次下載  |  10 積分