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  чтоб на терминал вывелось содержимое.
а после отладки тут написать код выполнения команды мотором

*/

   

    }
Аватара пользователя
Myp
скрытый хозяин вселенной :)
 
Сообщения: 18018
Зарегистрирован: 18 сен 2006, 12:26
Откуда: Тверь по прозвищу Дверь
прог. языки: псевдокод =) сила в алгоритме!
ФИО: глубокоуважаемый Фёдор Анатольевич

Пред.

Вернуться в Новичкам или основы основ роботостроения.

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 22