2015-04-17 38 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编译器为你管理这个,你永远不必考虑它。

相关问题