求助坛友,如何用DEFINE将零散的IO组合为一组P0这种。谢谢

2020-01-21 21:43发布

求教各位坛友,目前有一个小点阵板,因为EDA布线的需要,把IO口打散了,没法用P0=0x45这种形式直接赋值了。
以前看过一个用DEFINE方法把零散io组合回一个整P0格式的,搜了半天也没有搜到。
麻烦坛友帮忙,多谢多谢!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
16条回答
didadida
2020-01-22 17:15
本帖最后由 didadida 于 2014-10-23 11:40 编辑

假设 P0 剩余 P0.0 P0.3,P1 剩余 P1.1 P1.3 P 1.5,P2 剩余 P2.2 P2.3 P2.6

(顺序MSB->LSB:P0.3 P0.0 P1.5 P1.3 P1.1 P2.6 P2.3 P2.2)
  1. #define PX(val)  P2 &= ~(1<<2 | 1<<3 | 1<<6); P2 |= (val&0x01)<<2 | (val&0x02)<<3 | (val&0x04)<<6;
  2. P1 &= ~(1<<1 | 1<<3 | 1<<5); P1 |= (val&0x08)<<1 | (val&0x10)<<3 | (val&0x20)<<5;
  3. P0 &= ~(1<<0 | 1<<3); P0 |= (val&0x40)<<0 | (val&0x80)<<3;
复制代码
以上代码未经测试,请自行调整。

一周热门 更多>