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!
ОтветитьУдалитьполезно. попробую освоить =)