位定义

2020-01-30 13:45发布

我想在C语言中实现以下功能,就是在位定义的时候,实现变量名一样,端口对应不一样,如何实现??我IIC头文件使用的是SCL、SDA的符号
                                     sbit        SCL=P2^1;      //HMC5883L IIC时钟
                  sbit        SDA=P2^0;      //IIC数据
               
                 sbit        SCL=P2^3;      //ADXL345 IIC时钟
                   sbit        SDA=P2^2;      //IIC数据



                       
               
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
tongdayusu
1楼-- · 2020-01-30 16:48
这个不就是了么? sbit
Cliff
2楼-- · 2020-01-30 20:59
这个思路不对。
首先,所有I2C器件都可以挂在一个总线上的,为什么要为不同器件定义两套?
其次,就算需要两组I2C,那也可以定义成 SCL1,SDA1,SCL2,SDA2 的,为什么一定要 SCL、SDA 这么冲突?

可能我没搞清楚你到底想做什么
clarkewayne
3楼-- · 2020-01-31 02:53
 精彩回答 2  元偷偷看……
蕾蕾
4楼-- · 2020-01-31 05:35
谢谢二楼三楼,我问题已经解决了
sbit        HSCL=P2^1;      //HMC5883L IIC时钟
sbit        HSDA=P2^0;      //IIC数据

sbit        ASCL=P2^3;      //ADXL345 IIC时钟
sbit        ASDA=P2^2;      //IIC数据
BYTE SCL,SDA;

void sbit_iic(uint biaozhi)
{
        if(biaozhi==0)
                {
                   SCL=HSCL;
                   SDA=HSDA;
                }
        else if(biaozhi==1)
                {
                   SCL=ASCL;
                   SDA=ASDA;                
                }
}
蕾蕾
5楼-- · 2020-01-31 05:42
clarkewayne 发表于 2013-4-17 11:50
是的

因为我想只用一个IIC的C文件,这样时序就不用写两次了
z903057128
6楼-- · 2020-01-31 08:01
蕾蕾 发表于 2013-4-17 14:07
因为我想只用一个IIC的C文件,这样时序就不用写两次了

如果你这两个器件的地址不一样  完全可以只用一组端口啊

一周热门 更多>