舉個例子,我想用一個start()函數(shù)驅(qū)動多個傳感器的數(shù)據(jù)線,我的理想是:sbit sensor1_data P1^1sbit sensor2_data P1^2......main(){start(sensor1_data);start(sensor2_data);.....}而我現(xiàn)在只能為第二個傳感器從新寫一個start2()函數(shù)。start()的參數(shù)里面不能寫sbit,也就是我寫start(sbit data)會報錯,我試過start(bit data),這樣也不行,雖然不報錯,但是函數(shù)不工作求達人指點
1 回答

慕標5832272
TA貢獻1966條經(jīng)驗 獲得超4個贊
你理解錯了,sbit不是定義一個變量,定義的是一個固定的寄存器,給那個寄存器取個名字而已,sensor1_data和sensor2_data是寄存器的名字,代表的是那個寄存器,就是固定的常量了,也就不能做函數(shù)參數(shù)啊。你可以這樣:
define sensor1 1
define sensor2 2
/*函數(shù)定義*/
start(int sensor )
{
switch(sensor)
case sensor1:
sensor1_data=0/1;
break;
case sensor2:
sensor2_data=0/1;
break:
}
這樣就可以調(diào)用函數(shù):start(sensor1);
start(sensor2);
當(dāng)然你也可以用其它方式。
添加回答
舉報
0/150
提交
取消