sonna 发表于 2010-8-11 10:27:46

问个比较菜的问题,ARM很多I/O端口排列不是连续,如何传输并行数据呢,比如16位地址,8位数

如题,请教,谢谢!


比如 只有 P1.0,                P2.0,
          P1.1,                P2.1,
          P1.9,                P2.5~P2.11
          P1.10,               P3.0~P3.7做地址位,什么才能简单又不影响其它I/O操作这些输入输出呢?
          P1.15,
          P1.17,
          P1.18,
          P1.19,做数据位

sonna 发表于 2010-8-11 16:44:53

沉得好快啊,自己顶起来!

sdpz 发表于 2010-8-11 18:02:22

MASK = ~(1<<a | 1<<b | 1<<c | 1<<d .....); //掩码
data = (1<<a | 1<<c .....); //并行数据
tmp = IO读入 & MASK; //并行IO口全部清零
IO输出 = tmp | data; //并行数据写入IO,不影响其他IO

A-smith 发表于 2010-8-11 22:10:50

如果硬件设计的时候 没有管教顺序并排链接的话 只能先清除 再靠多位移位来操作了    连在一起就是减少移位的次数而已 可以整体移位

Ayuflyhigh 发表于 2010-8-16 07:57:55

帮你顶起

sonna 发表于 2010-8-24 18:35:33

回复【2楼】sdpz
-----------------------------------------------------------------------

朋友,能写个具体点的例程吗,研究了几天没什么头绪,先谢了!

sonna 发表于 2010-8-25 10:25:48

再顶上去,没有人碰到这个问题吗?
页: [1]
查看完整版本: 问个比较菜的问题,ARM很多I/O端口排列不是连续,如何传输并行数据呢,比如16位地址,8位数