搜索
bottom↓
回复: 25

io不连续这样定义为什么不行?

[复制链接]

出0入0汤圆

发表于 2013-9-8 15:59:39 | 显示全部楼层 |阅读模式
本帖最后由 cafppla1 于 2013-9-9 12:52 编辑

unsigned char bdata         da;
sbit da0=da^0;
sbit da1=da^1;
sbit da2=da^2;
sbit da3=da^3;
sbit da4=da^4;
sbit da5=da^5;
sbit da6=da^6;

#define da0 P3^4
#define da1 P3^3
#define da2 P3^7
#define da3 P3^0
#define da4 P1^5
#define da5 P1^6
#define da6 P3^1

测试让da=0,可是那几个脚还是输出1,不知道问题在哪?

阿莫论坛20周年了!感谢大家的支持与爱护!!

你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。

出0入0汤圆

发表于 2013-9-9 08:30:05 | 显示全部楼层
完全看不懂你为何这样定义

出0入4汤圆

发表于 2013-9-9 08:43:12 | 显示全部楼层
FK1174 发表于 2013-9-9 08:30
完全看不懂你为何这样定义

+1                                       

出0入0汤圆

 楼主| 发表于 2013-9-9 08:49:37 | 显示全部楼层
FK1174 发表于 2013-9-9 08:30
完全看不懂你为何这样定义

io不连续,为了方便输出一个字节数据啊

出0入0汤圆

发表于 2013-9-9 08:50:00 | 显示全部楼层
FK1174 发表于 2013-9-9 08:30
完全看不懂你为何这样定义

+1                                                     

出0入0汤圆

 楼主| 发表于 2013-9-9 08:52:03 | 显示全部楼层
laujc 发表于 2013-9-9 08:43
+1

io不连续,为了方便输出一个字节

出0入17汤圆

发表于 2013-9-9 08:57:03 | 显示全部楼层
sbit 是KEIL独有的语法,只能这样写

出0入0汤圆

 楼主| 发表于 2013-9-9 10:44:21 | 显示全部楼层
hhxb 发表于 2013-9-9 08:57
sbit 是KEIL独有的语法,只能这样写

问题是这样写不行,输出不对

出0入4汤圆

发表于 2013-9-9 10:44:25 | 显示全部楼层
cafppla1 发表于 2013-9-9 08:52
io不连续,为了方便输出一个字节

单独的写一个函数,每个输出时,直接调用,可能更方便灵活,而且在不同的编译器下,都不会出错。
我就是这样干的,一样方便,反正芯片也不差多几条指令的时间。

出0入0汤圆

 楼主| 发表于 2013-9-9 10:45:46 | 显示全部楼层
laujc 发表于 2013-9-9 10:44
单独的写一个函数,每个输出时,直接调用,可能更方便灵活,而且在不同的编译器下,都不会出错。
我就是 ...

这样看着有点繁琐…

出0入4汤圆

发表于 2013-9-9 10:49:18 | 显示全部楼层
cafppla1 发表于 2013-9-9 10:45
这样看着有点繁琐…

一点都不繁琐,你是一个函数,每个用到时调用就可以了。

出0入0汤圆

发表于 2013-9-9 11:57:29 | 显示全部楼层
好像有点不对劲

出0入17汤圆

发表于 2013-9-9 12:08:54 | 显示全部楼层
cafppla1 发表于 2013-9-9 10:44
问题是这样写不行,输出不对

算我没说清楚;
sbit是对的;下面的 #defined 是无效的,反而把sbit的定义给覆盖了

出0入0汤圆

发表于 2013-9-9 12:34:34 | 显示全部楼层
貌似define不加分号吧

出0入0汤圆

 楼主| 发表于 2013-9-9 12:51:32 | 显示全部楼层
kenshudemayi 发表于 2013-9-9 12:34
貌似define不加分号吧

嗯,编辑上帖子来时没注意,直接改得,程序里实际没分号

出0入0汤圆

发表于 2013-9-9 15:53:12 | 显示全部楼层
这绝对是自找麻烦啊

出0入0汤圆

发表于 2013-9-9 18:48:53 来自手机 | 显示全部楼层
呐尼…………:-)

出0入0汤圆

发表于 2013-9-9 19:02:43 | 显示全部楼层
直接P3=0不就得了,非要画蛇添足

出0入0汤圆

 楼主| 发表于 2013-9-9 19:18:49 | 显示全部楼层
cn_badboy 发表于 2013-9-9 19:02
直接P3=0不就得了,非要画蛇添足

矮油,您仔细看下io,只能这么分配,不是用一组io

出0入0汤圆

发表于 2013-9-9 19:21:12 | 显示全部楼层
我晕,不是一组,根本不能这么用啊,P1=XX,P3=XX

出0入0汤圆

 楼主| 发表于 2013-9-9 19:26:35 | 显示全部楼层
cn_badboy 发表于 2013-9-9 19:21
我晕,不是一组,根本不能这么用啊,P1=XX,P3=XX

问题就是不是一组凑几个用来组成一组,用bdata位寻址

出0入0汤圆

发表于 2013-9-9 19:31:08 | 显示全部楼层
当然不行,BDATA只能位寻址区域,也P3,P1一样的区域,没法操作,你钻这牛角尖,有意义吗,去看看程序的反汇编就明白了

出0入0汤圆

 楼主| 发表于 2013-9-9 22:28:58 | 显示全部楼层
jswd0810 发表于 2013-9-9 22:04
我是直接赋值的
uchar bdata other_in;//此处other_in必须为bdata类型,否则编译出错
sbit mybit0=other_in ...

然后要输出是不是直接赋值otherin?

出0入0汤圆

发表于 2013-9-9 22:32:21 | 显示全部楼层
好好看看书,这样的例子很多.
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-10-3 06:22

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表