if (data_xmited & (uart_state == XMIT))
{
switch (xmit_count)
{
case 0:
xmit_buffer = msg_opcode;
error = 0;
break;
case 1:
xmit_buffer = msg_length;
break;
default:
xmit_buffer = msg_data[xmit_count-2];
break;
}
xmit_count++;
if (xmit_count == (msg_length+2))
{
xmit_count = 0;
if (msg_opcode == START)
{
msg_opcode = ADC_DATA;
msg_length = BYTES_IN_BLOCK;
uart_state = XMIT_ADC_DATA;
}
else
uart_state = RECV;
}
data_xmited = 0;
SFRPAGE = UART1_PAGE;
SBUF1 = xmit_buffer;
} Рецепт тут.
UART1_PAGE - название сломало мой мозг. что-то из области уринотерапии
ОтветитьУдалитьADC_DATA - нужно обязательно переименовать в ACDC_DATA
хоть бы сказал что этот код делает ;) а без контекста - это магические руны инков или ацтеков.
Кусок кода из одной программы для микроконтроллера, скопировал и вставил, просто посмотреть результат. А реально - этот кусок отправляет пакетики через UART - то бишь универсальный асинхронный приемопередатчик. Блин, снег мокрый идет (
ОтветитьУдалить+1!
ОтветитьУдалитьполезно. попробую освоить =)