Project

General

Profile

Revision cf115e3d

IDcf115e3dd10fc6e8ab344c1385a88be6932755b7

Added by Thomas Mullins about 12 years ago

Fixed problem with serial rx. Rosserial now works.

View differences:

scout_avr/src/Atmega128rfa1.cpp
24 24
ISR(USART_RX_vect)
25 25
{
26 26
  char data = UDR0;
27
  if (rx_start == rx_end-1 || (rx_start == RX_BUFFER_SIZE-1 && rx_end == 0))
27
  if (rx_end == rx_start-1 || (rx_start == 0 && rx_end == RX_BUFFER_SIZE-1))
28 28
  {
29 29
    // TODO warn of buffer overflow?
30 30
  }
......
70 70

  
71 71
int Atmega128rfa1::read()
72 72
{
73
  cli();
73 74
  if (rx_start == rx_end)
74 75
    return -1;
75 76
  else
......
80 81
      rx_start = 0;
81 82
    return ret;
82 83
  }
84
  sei();
83 85
}
84 86

  
85 87
void Atmega128rfa1::write(uint8_t* data, int length)

Also available in: Unified diff