我配置了CTC模式下的定時器2,並在比較匹配時切換端口引腳(TCCR2A = 0x42,TCCR2B = 0x02,OCR2A = 0x20)並設置DDR3輸出。因此,根據ATmega328P文檔(第158-163頁)。 OC2A(又名PB3)應在每次比較匹配時切換。不幸的是,我無法讀取PORTB的引腳狀態。這是預期的嗎?我認爲,即使端口配置爲輸出,我也可以讀取設定值。AVR/Arduino:讀計時器切換的端口引腳
2
A
回答
3
有兩個問題:
在AVR Studio的4.18我不能使用模擬器1,由於它具有定時器2中的錯誤,因此不能正確地切換端口引腳。我需要使用模擬器2或AVR Studio 5.
我需要讀取PINB而不是PORTB(儘管切換是輸出操作)。
1
我不知道具體的微控制器,但在某些體系結構中,在更改端口引腳和正在更新的鎖存器之間至少需要一個NOP(以便您可以讀取更改)。
另外還有一個引腳可以切換的最大頻率(比微控制器CPU時鐘慢很多倍)。一定不要超過那個頻率。
相關問題
- 1. 將以太網端口的引腳切換爲高/低狀態?
- 2. 通過批處理文件從串行COM端口切換引腳
- 3. 切換jQuery切換鼠標和計時器
- 4. Android:如何與計時器切換?
- 5. 在計時器上切換div
- 6. 服務器端倒計時腳本
- 7. Rails 5服務器切換到默認端口,而不是指定端口
- 8. 在C#中讀取串行端口引腳
- 9. 並行端口引腳的高度
- 10. 無法切換Apache端口綁定
- 11. Twitter Bootstrap:基於視口切換頁腳
- 12. jQuery腳本只能切換IE窗口
- 13. 串行端口計數器
- 14. 引腳切換按鈕樣式
- 15. 在RTOS中使用vTaskDelay切換引腳
- 16. 如何在鎖定端口時在線程之間切換?
- 17. 切換窗口
- 18. Python UDP端口切斷器 - 不工作
- 19. 切換到jQuery時停止窗口高度計算1.9.1
- 20. API接口設計 - 切換或2個不同的接口
- 21. 如何在C++中設置並讀取並行端口上的引腳?
- 22. 服務器端計時器?
- 23. 谷歌計算引擎Windows服務器端口
- 24. 我想切換按鈕關閉時,計時器完成
- 25. Netbeans切換隻讀
- 26. 切換窗口專用服務器
- 27. 將socket.io切換到端口80導致傳輸切換到xhr輪詢
- 28. DIV切換腳本
- 29. 着讀TCP端口
- 30. 閱讀com端口
ATmega處理器可以通過定時器直接切換端口引腳。沒有必要手動執行此操作並等待一小段時間。 – Mot 2011-06-17 10:01:39