roboforum.ru

Технический форум по робототехнике.

прерывание виснет

Myp » 30 апр 2007, 00:35

вот короче рабочий код для приёма команд по уарту

Код: Выделить всёРазвернуть
Код: 
// USART Receiver interrupt service routine
interrupt [USART_RXC] void usart_rx_isr(void)
{
char status,data,;
status=UCSRA;
data=UDR;
if ((status & (FRAMING_ERROR | PARITY_ERROR | DATA_OVERRUN))==0)
  {
  rx_buffer[rx_wr_index]=data;
  if (++rx_wr_index == RX_BUFFER_SIZE) rx_wr_index=0;
  if (++rx_counter == RX_BUFFER_SIZE)
     {
     rx_counter=0;
     rx_buffer_overflow=1;
     };


   simvol = getchar();

   if ((simvol == 'R')|(simvol == 'L')) {

   i = 0;
   
   buffer[i] = simvol;
   
   i++;

  }


      if (i)
     {  
       if (((simvol >= '0')&(simvol <= '9')))  
     {
       buffer[i] = simvol;
       i++;
     }
     }  



    if (i > 2) {

/* если i больше 2 то в массив записано 3 допустимых символа

*/

    i =0;

/*

тут нужно написать код  вывода символов из массива обратно в USART  чтоб на терминал вывелось содержимое.
а после отладки тут написать код выполнения команды мотором

*/

   

    }


cron
Rambler\'s Top100 Mail.ru counter