想解决5502和AD之间数据传递的问题,在网上逛了几天了,找到一个55系列的读写IO的方法,如下:
ioport short * io_tl16c55;
short sh_addr=0x0100;
short sh_read_data;
sh_addr=0x000f;
io_tl16c55=&sh_addr;
sh_read_data=*io_tl16c55;
但是在示波器上看不到数据线上有数据传输,不知道是怎么回事,请高手指教下,不胜感激!
还需要其他设置吗?
DSP 5502 读写外部IO空间 C语言
答案:2 悬赏:0 手机版
解决时间 2021-01-25 10:42
- 提问者网友:绫月
- 2021-01-25 05:38
最佳答案
- 五星知识达人网友:舊物识亽
- 2021-01-25 06:14
io_tl16c55=&sh_addr;
sh_read_data=*io_tl16c55;
实际上不就是“sh_read_data=sh_addr;”么???
......虽然我不知道外部数据线地址是多少,不过这几句让我觉得很诡异,sh_addr不是寄存器么???
我感觉应该是:
ioport short * io_tl16c55;
short sh_addr=0x0100;
//0x0100或许是IO口地址吧,不确定
short sh_read_data=0;
//清零吧,最好
*sh_addr=0x000f;
//写操作,4位的高电平信号,而不是地址
io_tl16c55=sh_addr;
sh_read_data=*io_tl16c55;//读操作
另外,这样改的前提是有类似下面的定义
typedef volatil ioport;
即指定ioport是实时读取的变量
sh_read_data=*io_tl16c55;
实际上不就是“sh_read_data=sh_addr;”么???
......虽然我不知道外部数据线地址是多少,不过这几句让我觉得很诡异,sh_addr不是寄存器么???
我感觉应该是:
ioport short * io_tl16c55;
short sh_addr=0x0100;
//0x0100或许是IO口地址吧,不确定
short sh_read_data=0;
//清零吧,最好
*sh_addr=0x000f;
//写操作,4位的高电平信号,而不是地址
io_tl16c55=sh_addr;
sh_read_data=*io_tl16c55;//读操作
另外,这样改的前提是有类似下面的定义
typedef volatil ioport;
即指定ioport是实时读取的变量
全部回答
- 1楼网友:三千妖杀
- 2021-01-25 07:17
可以在执行写操作的时候用示波器或者逻辑分析仪看看lcd的数据线有无相应信号
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯