标题: [求助] 无法排除没有开启的多机通信? [打印本页]
作者: 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.51hei.com/bbs/) |
Powered by Discuz! X3.1 |