Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: USART0_RXC_vect
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
d71
само прерывание ловлю, ногой дрыгаю, а вот при попытке сделать передачу байта, который поймал, всё виснет и больше уже ниодной ногой не дергает.
--
думаю что поглядев на реализацию пойму где застрял.
поделитесь а? (iar)
Igor26
Покажи код инициализации UART и обработчика прерывания RXC.
И как ты передаешь принатый байт?
Kuzmi4
Да, неплохо было б код посмотреть.
А на счёт отправки - получения - в прицепленном файле посмотрите - там вырезанный кусок моей проги - там как раз в прерывании по РХ инициируется пердача.
камень - мега 168-я...
//////////////////
Функции типа PUT_HEAD или PUT_TAIL - просто ложат в Work.tbuffer[чё то там] нужный байт откуда то.

do_str.bb[чё то там] - просто статусный байты для манагера - если они устанавливаются или сбрасываются - то систаймер чё то там делает.

wCRC - рассчитанная црц для пакета.
структура - Name1 - типа юнион 2-х байт и интегера.
//////////////////


А так вроде всё понятно должно быть..


------------------
да забыл - это в ГЦЦ
Dog Pawlowa
Цитата(d71 @ May 11 2007, 09:41) *
само прерывание ловлю, ногой дрыгаю, а вот при попытке сделать передачу байта, который поймал, всё виснет и больше уже ниодной ногой не дергает.
--
думаю что поглядев на реализацию пойму где застрял.
поделитесь а? (iar)

Только прием и заталкивание пакета фиксированного пакета с известными первым и последним байтами в линейный буфер.

Код
#pragma vector = USART_RXC_vect
__interrupt void USART_receive(void)
{    uchar b = UDR;
  uart0.rx_flag=1;
  uart0.rx_char=b;
  { if (uart0.rx_head == uart0.rx_buf)
      { if (!(b == uart0.start_rx_char))
          return;
      }
    *uart0.rx_head = b;
    uart0.rx_head ++;
    if (uart0.rx_head >= uart0.rx_buf+uart0.packet_size)
        uart0.rx_status=Uart0Received;
    if (b == uart0.end_rx_char) uart0.rx_status=Uart0Received;
  }
}


А старт отправки у меня отдельно.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.