历史上的今天
今天是:2024年11月05日(星期二)
2021年11月05日 | ATmega128 I/O存储器
2021-11-05 来源:eefocus
ATmega128 的I/O 空间定义见P 342“ 寄存器概述” 。
ATmega128 的所有I/O 和外设都被放置在I/O 空间。所有的I/O 地址都可以通过 LD/LDS/LDD和ST/STS/STD指令来访问,在32个通用工作寄存器和I/O之间传输数据。地 址为$00 - $1F 的I/O 寄存器还可用SBI 和CBI 指令直接进行位寻址,而SBIS 和SBIC 则用来检查单个位置位与否。当使用IN 和OUT 指令时地址必须在$00 - $3F 之间。如果 要象SRAM一样通过LD和ST指令访问I/O 寄存器,相应的地址要加上$20。ATmega128是一个复杂的微处理器,其支持的外设要比预留的64 个I/O( 通过IN/OUT 指令访问) 所 能支持的要多。对于扩展的I/O 空间$60 - $FF,只能使用ST/STS/STD 和LD/LDS/LDD 指令。当ATmega128 工作于ATmega103 兼容模式时,扩展的I/O 被SRAM 所取代。
为了与后续产品兼容,保留未用的未应写"0“,而保留的I/O 寄存器则不应进行写操作。
一些状态标志位的清除是通过写"1“ 来实现的。CBI 和SBI 指令可以操作I/O 寄存器所有 的位,并给置位的位回写"1“,因此会清除这些标志位。CBI 和SBI 指令只对$00 to $1F 之间的寄存器有效。
I/O 和外设控制寄存器在其他章节介绍。
下一篇:ATmega64 ALU
史海拾趣
|
lwip 的性能到底怎样?我需要它长期运行,但它出现“重传”现象,而且十几分钟后会出现被PC端“FIN”断开。 lwip 的性能到底怎样?我需要它长期运行,但它会出现“重传”现象,而且十几分钟后会出现被PC端“FIN”断开。 本人刚开户,没有那么什么积分可以悬赏。sorry。… 查看全部问答> |
|
2440的开发板,编过摄像头的应用程序,就用DeviceIoControl函数对摄像头进行操作。记得IOCTL_CAM_CONT这个操作码是使能并初始化摄像头,CAM_IOCTL_GET_LATEST_FRAME这个是拍照,现在想问一下对于视频摄像,应该用哪个操作码?(想到一个很笨的方法 ...… 查看全部问答> |
|
为何不接收浮点参数????以及在shell中不能对浮点型全局变量赋值呢??? 代码如下: #include \"vxworks.h\" #include \"stdio.h\" void test(float a,int b) { printf(\"a=%f,b=%d\"); } 编译完了,运行,在windshell中 敲入test(2.2,3)命令运行结果整型b可以打印正确结果,浮点a打印N/A。不明白为什么会这样 ...… 查看全部问答> |
|
我在调别人写的程序,刚开始用EVC3.0,有许多错误调也调不出来,如果我想用他原程序中的一部分,哪些文件必须留下呢? 我留下了一些.cpp和.h文件,还有.vcw和.vcp文件,以及程序中用到的.ico文件,还有.rc文件,但是在编译时还是出了错误,告诉我 ...… 查看全部问答> |
|
我的软件串口,错在那,请指教,谢谢 //ACLK = 32768,波特率为2400的软件串口// #define Bitime_5 0x06 // ~ 0.5 的长度添加一点修正 #define Bitime 0x0E // 427us 长度 ~ 2341波特根据实际需要修改 ...… 查看全部问答> |




