Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arduino 使用STS LDS命令输入/输出_Arduino - Fatal编程技术网

Arduino 使用STS LDS命令输入/输出

Arduino 使用STS LDS命令输入/输出,arduino,Arduino,如何仅使用STS LDS(或同等)指令寻址(读取/写入)较低IO块(0x00-0x63)中的IO寄存器 谢谢 Kris主要问题是“STS/LDS可见的内存中映射的寄存器在哪里?”。答案在数据表中: 如果要将IN/OUT更改为LDS/STS,则必须向IN/OUT中使用的地址添加0x20偏移量 7.5输入/输出存储器 ATmega328P的I/O空间定义如第275页“”部分所示。所有ATmega328P I/O和外围设备均已放置 在I/O空间中。LD/LDS/LDD可以访问所有I/O位置 和ST/

如何仅使用STS LDS(或同等)指令寻址(读取/写入)较低IO块(0x00-0x63)中的IO寄存器

谢谢

Kris

主要问题是“STS/LDS可见的内存中映射的寄存器在哪里?”。答案在数据表中:

如果要将IN/OUT更改为LDS/STS,则必须向IN/OUT中使用的地址添加0x20偏移量

7.5输入/输出存储器

ATmega328P的I/O空间定义如第275页“”部分所示。所有ATmega328P I/O和外围设备均已放置 在I/O空间中。LD/LDS/LDD可以访问所有I/O位置 和ST/STS/STD指令,在32个通用 用途工作寄存器和I/O空间。内部的I/O寄存器 地址范围0x00-0x1F可使用SBI直接进行位访问 和CBI指令。在这些寄存器中,单个位的值可以 使用SBIS和SBIC说明进行检查。参考 有关详细信息,请参阅指令集部分。使用特定于I/O的 输入和输出命令时,必须使用I/O地址0x00-0x3F。什么时候 使用LD和ST指令将I/O寄存器寻址为数据空间, 必须将0x20添加到这些地址。ATmega328P是一个复杂的系统 外围设备数量超出支持范围的微控制器 在操作码中为输入和输出保留的64个位置内 说明书对于SRAM中从0x60到0xFF的扩展I/O空间, 只能使用ST/STS/STD和LD/LDS/LDD指令。对于 与将来的设备兼容时,应将保留位写入 如果访问,则为零。不应删除保留的I/O内存地址 写入。通过写入逻辑标志,可以清除某些状态标志 对他们来说。请注意,与大多数其他AVR®不同,CBI和SBI 指令将仅在指定位上运行,因此可以 可在包含此类状态标志的寄存器上使用。CBI和SBI 指令仅适用于寄存器0x00到0x1F。I/O和 外围设备控制寄存器将在后面的章节中解释


正是我想要的。非常非常感谢。克里斯