打印

sbit定义的多个管脚,能用数组加循环处理吗?

[复制链接]
7807|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
救火车|  楼主 | 2011-8-10 09:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
就像这样的定义
sbit D1 = P3^4;
sbit D2 = P3^3;
sbit D3 = P0^1;
sbit D4 = P3^2;
sbit D5 = P0^0;
sbit D6 = P2^3;
sbit D7 = P2^2;
sbit D8 = P0^3;

想用一个for 循环把D1到D8全处理了。
for (i=0;i<8;i++)
{
    if (D?==1) {...}
......
}
怎么实现呢?

相关帖子

沙发
ayb_ice| | 2011-8-10 10:33 | 只看该作者
NO

使用特权

评论回复
板凳
刘前辈| | 2011-8-10 12:41 | 只看该作者
本帖最后由 刘前辈 于 2011-8-10 12:45 编辑

for (i=0;i<8;i++)
{
   switch( i )
   {
case  1:   //  D1处理程序;
             break;
.
.
.
case  8 :  //   D8 处理程序
           break;
    }
}



//

使用特权

评论回复
地板
misra| | 2011-8-10 12:47 | 只看该作者
P0-P3先映射到一个INT8U A啊

写函数得到A的某个 bit ,函数名字是Get_bit(?)

想用一个for 循环把D1到D8全处理了。
for (i=0;i<8;i++)
{
    if (Get_bit(i)) {...}
......
}

注:没咋思索 肯能是胡说八道

使用特权

评论回复
5
刘前辈| | 2011-8-10 15:18 | 只看该作者
既然D1~D8无选择都处理,那还要什么i ?
do {
if(D1){ D1处理语句;)else { }
if(D2){ D2处理语句;)else { }
.
.
.
if(D8){ D8处理语句;)else { }
}while(0);



//

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:秦皇岛蓝马电子科技有限公司 救火车单片机工作室

113

主题

1249

帖子

2

粉丝