void ZOHJI_NUM() //============================發從機代碼=0-255==========
{
static uchar TX_ZHONGJI_COUT=0;//發送從機的編碼
uchar SLAVE_COUT=0;//從機從計數//
//===接收到的數據等于發射的數據
if(ZHONGJI_Dat==TX_ZHONGJI_COUT)
{
ERR_SALVE_TIM=0; //沒收到開始計時
TX_ZHONGJI_COUT++; //發送從機號,0-255XTD!
SLAVE_COUT++; //從機返回來編號0-255XDNX!收到也開始計數
Slave_PCS++; //開始統計從機數量
}
if(ZHONGJI_Dat!=TX_ZHONGJI_COUT)
{
TX_ZHONGJI_COUT; //發從機號出去,從機沒有收到,重發不變的代碼TX_ZHONGJI_COUT
SLAVE_COUT; //從機沒有收到,重發不計數
ERR_SALVE_TIM++; //從機未收到超時計時
}
if(ERR_SALVE_TIM==4)
{
TX_ZHONGJI_COUT++; //發從機號出去,3次從機沒有到,發下一個從機代碼
SLAVE_COUT++; //統計從機數量加一次。保持跟發送的代碼同步
}
if(ERR_SALVE_TIM==7) //如果3次從機也沒有收到就結束
{
ERR_SALVE_TIM=0;
TX_ZHONGJI_COUT=1; //如果還沒有從機返回來重新開始,表一輪結束//從1開始發
SLAVE_COUT=0; //從機計數清0
ZHONGJI_PCS_A=Slave_PCS;//把計數發送到遙控器上顯示
Slave_PCS=0; //從機總計數清0
}
TX_ZHONGJI_NUM[0]=TX_ZHONGJI_COUT/100+0x30;
TX_ZHONGJI_NUM[1]=TX_ZHONGJI_COUT%100/10+0x30;
TX_ZHONGJI_NUM[2]=TX_ZHONGJI_COUT%100%10+0x30;
TX_ZHONGJI_NUM[3]='X';
TX_ZHONGJI_NUM[4]='T';
TX_ZHONGJI_NUM[5]='D';
TX_ZHONGJI_NUM[6]='!';
SendString(TX_ZHONGJI_NUM);//發代碼1-255個數
memset(S_tab,0,sizeof(S_tab));
} |