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