|
else {
switch( tx_state ) {
case TX_CMD_HI:
SBUF = Hex2ASCII((txCmd >> 4) & 0x0f);
tx_state = TX_CMD_LO; /* иногда так распределяю константы, что тут нагло пишу ++tx_state; */
break;
case TX_CMD_LO:
SBUF = Hex2ASCII( txCmd & 0x0f);
tx_state = TX_DATA_HI; // ++tx_state;
break;
case TX_DATA_HI:
SBUF = Hex2ASCII((*txPtr >> 4) & 0x0f);
tx_state = TX_DATA_LO; // ++tx_state;
break;
case TX_DATA_LO:
SBUF = Hex2ASCII(*txPtr++ & 0x0f);
if ( --txCount)
tx_state = TX_DATA_HI; // --tx_state;
else
tx_state = TX_END_OF_PKT; // ++tx_state;
break;
case TX_END_OF_PKT:
SBUF = 0x0A;
tx_state = TX_IDLE; /* IDLE обычно 0, чтобы зануление структуры было "правильным" */
break;
case TX_IDLE;
break;
}
}
E-mail: info@telesys.ru