標(biāo)題: [求助] 無法排除沒有開啟的多機(jī)通信? [打印本頁]
作者: wxl900306 時(shí)間: 2013-3-14 17:05
標(biāo)題: [求助] 無法排除沒有開啟的多機(jī)通信?
現(xiàn)在我在做一個(gè)無線表決器,其他都成功了,但是就是在報(bào)到時(shí)無法排除沒有按下報(bào)到鍵和沒有上電的表決器,我個(gè)人認(rèn)為是表決器返回值時(shí)出錯(cuò)了,但我有找不到問題,希望各位幫幫忙,謝了!!!
作者: wxl900306 時(shí)間: 2013-3-14 17:06
下面是我集中器發(fā)送 采集人數(shù)的代碼
- [br]1 if(((a/100)==2)&&(a%10==4)) //采集報(bào)到信息 [br]2 { [br]3 xuanze=9; //發(fā)送任務(wù)選擇,即為要進(jìn)行采集數(shù)據(jù) [br]4 // DISBUFF=0; //發(fā)送的是數(shù)據(jù) [br]5 delay(1); [br]6 for(i=0;i<2;i++) //按地址依次發(fā)送 [br]7 { [br]8 ADD=address[i]; //發(fā)送的地址 [br]9 tx_packet(); //發(fā)送 [br]10 delay(2); [br]11 while((DISBUFF1==0x00)&&(p<100)) // DISBUFF1為接收到的數(shù)據(jù),在100ms內(nèi)如果數(shù)據(jù)為0那么一直接收 [br]12 { [br]13 re_packet(); [br]14 p++; [br]15 } [br]16 if(DISBUFF1!=0) //排除沒有啟動(dòng)的表決器 [br]17 { [br]18 address1[i]=DISBUFF1; //將報(bào)到的地址裝入新的地址寄存器 [br]19 renshu++; //報(bào)到的人數(shù)總計(jì) [br]20 DISBUFF1=0; [br]21 delay(5); [br]22 } [br]23 } [br]24 [br]25 SBUF=renshu; //返回報(bào)到的人數(shù) [br]26 while(!TI); [br]27 TI=0; [br]28 }
復(fù)制代碼
作者: wxl900306 時(shí)間: 2013-3-14 17:07
下面是表決器返回的代碼:- [br]1 if(DISBUFF[0]==9) //接收到數(shù)據(jù)為9,即為要返回本機(jī)地址 [br]2 { [br]3 if(m<1) [br]4 kk=0; [br]5 DISBUFF1=kk; //發(fā)送數(shù)據(jù)為本機(jī)地址 [br]6 set_tx_mode(); //發(fā)送 [br]7 tx_packet(); [br]8 break; [br]9 } [br]10 [br]11 void key3() [br]12 { [br]13 delay(5); [br]14 if(P2_3==0) //如果P2_3按下,用kk返回本機(jī)地址 [br]15 { [br]16 while(!P2_3); [br]17 kk=1; [br]18 m++; [br]19 } [br]20 } [br]21
復(fù)制代碼
| 歡迎光臨 (http://www.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |