2015-04-17 36 views
1

我被檢查ATMEGA16數據表,並在PG17我發現有這種情況發生有「IO地址和SRAM地址」的IO寄存器,AVR [爲什麼IO寄存器具有IO地址和SRAM不會忽略]

我不我不知道我們使用哪一個,爲什麼有兩種尋址IO?

我需要知道,如果它的SRAM的一部分,或者不是,請微啓我^^

Page 17 Data address space

+0

Better asked @ http://electronics.stackexchange.com/ –

+1

寄存器不在SRAM中。這個問題更多的是關於MCU架構而不是編程。研究數據總線如何工作。這將解釋爲什麼寄存器和RAM使用重疊的地址空間。 – UncleO

+0

@UncleO我想你誤解了這個問題。在AVR架構上,寄存器文件的某些部分在IO **和** Memory-Addressspace中均可見。 –

回答

0

可以使用普通/通用內存操作碼ADRESS寄存器(通過使用它SRAM地址)或者您可以使用更快的io操作碼訪問某些寄存器,這些操作碼也允許您更快地進行位級訪問。在後一種情況下,您必須使用IO地址。

通常你想使用IO地址和操作碼。但SRAM-Adresses使您能夠將寄存器目標作爲數據指針傳遞給函數。

通常你的C編譯器爲你管理這個,你永遠不必考慮它。

相關問題