|
void ZOHJI_NUM() //============================發(fā)從機(jī)代碼=0-255==========
{
static uchar TX_ZHONGJI_COUT=0;//發(fā)送從機(jī)的編碼
uchar SLAVE_COUT=0;//從機(jī)從計(jì)數(shù)//
//===接收到的數(shù)據(jù)等于發(fā)射的數(shù)據(jù)
if(ZHONGJI_Dat==TX_ZHONGJI_COUT)
{
ERR_SALVE_TIM=0; //沒(méi)收到開(kāi)始計(jì)時(shí)
TX_ZHONGJI_COUT++; //發(fā)送從機(jī)號(hào),0-255XTD!
SLAVE_COUT++; //從機(jī)返回來(lái)編號(hào)0-255XDNX!收到也開(kāi)始計(jì)數(shù)
Slave_PCS++; //開(kāi)始統(tǒng)計(jì)從機(jī)數(shù)量
}
if(ZHONGJI_Dat!=TX_ZHONGJI_COUT)
{
TX_ZHONGJI_COUT; //發(fā)從機(jī)號(hào)出去,從機(jī)沒(méi)有收到,重發(fā)不變的代碼TX_ZHONGJI_COUT
SLAVE_COUT; //從機(jī)沒(méi)有收到,重發(fā)不計(jì)數(shù)
ERR_SALVE_TIM++; //從機(jī)未收到超時(shí)計(jì)時(shí)
}
if(ERR_SALVE_TIM==4)
{
TX_ZHONGJI_COUT++; //發(fā)從機(jī)號(hào)出去,3次從機(jī)沒(méi)有到,發(fā)下一個(gè)從機(jī)代碼
SLAVE_COUT++; //統(tǒng)計(jì)從機(jī)數(shù)量加一次。保持跟發(fā)送的代碼同步
}
if(ERR_SALVE_TIM==7) //如果3次從機(jī)也沒(méi)有收到就結(jié)束
{
ERR_SALVE_TIM=0;
TX_ZHONGJI_COUT=1; //如果還沒(méi)有從機(jī)返回來(lái)重新開(kāi)始,表一輪結(jié)束//從1開(kāi)始發(fā)
SLAVE_COUT=0; //從機(jī)計(jì)數(shù)清0
ZHONGJI_PCS_A=Slave_PCS;//把計(jì)數(shù)發(fā)送到遙控器上顯示
Slave_PCS=0; //從機(jī)總計(jì)數(shù)清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);//發(fā)代碼1-255個(gè)數(shù)
memset(S_tab,0,sizeof(S_tab));
} |
|