请教c语言读写IO空间
哪位能给一个C语言读写IO空间的代码例子?多谢
2407的I/O地址映像是0000h到FEFFh,那么A015, D015, PS, DS, IS, WE, RD这些引脚的
访问地址是怎么确定的?
例如这样的语句
#define A port000C
ioport unsigned port000C;
A = 0x8080;
这种语句具体向哪些引脚写入了数据?
代表向地址c写入8080
我是想问A1-A0,D1-D0,RD,WE这些引脚的数据应该怎么读写?
对于这个问题我也不清楚,刚开始搞,正郁闷呢?请高手指点一下!问题也许简单,但是对于新手也是疾首,请高手多指点一下,谢谢!
这个问题,不用程序员管,你只要知道外设的地址就可以啦,
执行相应的指令(读/写)的话,那么在地址总线上就会出现你寻址的地址,和相应片选信号有效,接着数据总线上出现数据!
例如:向DA写数据:
在头文件中定义: #define DA port000C ;
ioport unsigned port000C;
那么在程序中就可以这样对DA写数据0x8080;
DA = 0x8080;
当程序运行 D A = 0x8080;这条指令的时候,DSP的地址总线就会出现000C ,同时I/0片选有效,表示选中DA ,接着数据总线出现0x8080,表示数据向DA写入!
例如:读AD采集的数据:
在头文件中定义: #define AD port000B ;
ioport unsigned port000B;
那么在程序中就可以这样读AD数据(如果采得数据是0x8000,程序中定义了一个数据单元RESULT用于存放采样结果)
RESULT =DA ;
当程序运行 RESULT =DA ;这条指令的时候,DSP的地址总线就会出现000B ,同时I/0片选有效,表示选中AD ,接着数据总线出现0x8000表示采样得到的数据读到RESULT单元!
所以你关心的问题是多余的,是DSP芯片设计人员考虑的,你对寻址好象没有理解,建议先看看微机原理或单片机方面的书。
多谢。简单的来说,如果
ioport unsigned port0101;
#define PORT port0101
PORT = 0xf0f0;
那么地址线A8和A0应当为高电平,数据线D15-D12, D7-D4应当为高电平,其余为低电平,IS引脚为低电平
这样没错吧
但是我单步执行语句,用示波器测量的结果基本上看不出有什么正确性。
请问还有什么地方会出问题?
READY引脚已经通过上拉电阻接到高电平