優點
您可能需要能夠非常快速地打開和關閉引腳,直接端口訪問可以在更少的時鐘周期內完成相同的工作。
有時您可能需要在同一時間設置多個輸出引腳。
如果程序內存不足,可以使用這些技巧使代碼更小。它需要更少的編譯代碼字節來同時通過端口寄存器同時寫入一堆硬件引腳,而不是使用for循環分別設置每個引腳。
缺點
一般來說,不建議直接寄存器操作:
1.調試和維護代碼要困難得多;
2.其他人理解起來要困難得多;
3.處理器執行代碼只需幾微秒,但您可能需要幾個小時才能弄清楚它為什么不能正常工作并修復它;
4.代碼不太便攜,控制端口寄存器和端口寄存器在每種微控制器上都可以不同;
5.通過直接端口訪問可以更容易地導致意外故障。
比如:引腳0是串行端口上的接收線(RX)。通過DDRD = B11111110將引腳0更改為輸出引腳,很容易意外地導致串口停止工作!