为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

繁星淼淼 2022-03-11 11:07:34
举个例子,我想用一个start()函数驱动多个传感器的数据线,我的理想是:sbit sensor1_data P1^1sbit sensor2_data P1^2......main(){start(sensor1_data);start(sensor2_data);.....}而我现在只能为第二个传感器从新写一个start2()函数。start()的参数里面不能写sbit,也就是我写start(sbit data)会报错,我试过start(bit data),这样也不行,虽然不报错,但是函数不工作求达人指点
查看完整描述

1 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

你理解错了,sbit不是定义一个变量,定义的是一个固定的寄存器,给那个寄存器取个名字而已,sensor1_data和sensor2_data是寄存器的名字,代表的是那个寄存器,就是固定的常量了,也就不能做函数参数啊。你可以这样:
define sensor1 1
define 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);
当然你也可以用其它方式。



查看完整回答
反对 回复 2022-03-15
  • 1 回答
  • 0 关注
  • 311 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信