Я с некоторых пор предпочитаю в таком духе
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено ReAl 24 ноября 2003 г. 21:14
В ответ на: ну вот так. Не думаю что это поможет. Но переменные не связаны. Это флаги, передаем ли команду, или старшую-младшую тетраду, или уже конец пакета отправлено DASM 24 ноября 2003 г. 20:38



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