求指教,sbit 的变量怎么写在函数的型参里?

举个例子,我想用一个start()函数驱动多个传感器的数据线,我的理想是:
sbit sensor1_data P1^1
sbit sensor2_data P1^2
......
main(){
start(sensor1_data);

start(sensor2_data);
.....
}
而我现在只能为第二个传感器从新写一个start2()函数。
start()的参数里面不能写sbit,也就是我写start(sbit data)会报错,我试过start(bit data),这样也不行,虽然不报错,但是函数不工作
求达人指点

繁星淼淼
浏览 313回答 1
1回答

慕标5832272

你理解错了,sbit不是定义一个变量,定义的是一个固定的寄存器,给那个寄存器取个名字而已,sensor1_data和sensor2_data是寄存器的名字,代表的是那个寄存器,就是固定的常量了,也就不能做函数参数啊。你可以这样:define sensor1 1define sensor2 2/*函数定义*/start(int sensor ){switch(sensor)case sensor1:sensor1_data=0/1;break;case sensor2:sensor2_data=0/1;break:}这样就可以调用函数:start(sensor1);start(sensor2);当然你也可以用其它方式。
打开App,查看更多内容
随时随地看视频慕课网APP