2703|4

1

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

G2553在操作P1IN和P2IN上有顺序要求吗? [复制链接]

我在用G2553写矩阵键盘的控制程序时用到了8个IO口,分别是P2.0—P2.5、P1.6、P1.7
#define KEYDIR0() {P1DIR |= (BIT7+BIT6);P2DIR |= (BIT5+BIT4+BIT3+BIT2+BIT1+BIT0) ; }//
#define KEYDIR1() {P1DIR&=~(BIT7+BIT6);P2DIR&=~(BIT5+BIT4);P2DIR&=~(BIT3+BIT2+BIT1+BIT0);}//
#define KEYOUT0() {P1OUT|=(BIT7+BIT6);P2OUT|=(BIT5+BIT4+BIT3+BIT2+BIT1);P2OUT&=~BIT0;}
#define KEYOUT1() {P1OUT|=(BIT7+BIT6);P2OUT|=(BIT5+BIT4+BIT3+BIT2);P2OUT&=~BIT1;P2OUT|=BIT0;}
#define KEYOUT2() {P1OUT|=(BIT7+BIT6);P2OUT|=(BIT5+BIT4+BIT3);P2OUT&=~BIT2;P2OUT|=(BIT1+BIT0);}
#define KEYOUT3() {P1OUT|=(BIT7+BIT6);P2OUT|=(BIT5+BIT4);P2OUT&=~BIT3;P2OUT|=(BIT2+BIT1+BIT0);}
#define KEYIN (P1IN & 0xc0)|(P2IN & 0x3f)//这个是对的
//#define KEYIN (P2IN & 0x3f)|(P1IN & 0xc0)//这个是错误
上面是宏定义部分
对于最后两句,在逻辑上是一样的吧,都是位运算
可是就像注释那样,只有定义成#define KEYIN (P1IN & 0xc0)|(P2IN & 0x3f)才能使程序运行正确
这是怎么回事啊?
我用的是CCS编译器
谢谢(^_^)......

最新回复

这个就要看它的汇编是怎样的了,也许还真有顺序   详情 回复 发表于 2015-3-25 20:09
 
点赞 关注

回复
举报

2549

帖子

0

TA的资源

五彩晶圆(初级)

沙发
 
一般这种复杂的应该和上面一样,最外面加括号
 
 

回复

2549

帖子

0

TA的资源

五彩晶圆(初级)

板凳
 
一般这种复杂的应该和上面一样,最外面加括号
 
 
 

回复

1976

帖子

0

TA的资源

五彩晶圆(初级)

4
 
逻辑上是没有区别的,但是你说会出错,这确实不明原因
 
 
 

回复

1291

帖子

0

TA的资源

纯净的硅(中级)

5
 
这个就要看它的汇编是怎样的了,也许还真有顺序
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表