Revision cf115e3d
ID | cf115e3dd10fc6e8ab344c1385a88be6932755b7 |
Fixed problem with serial rx. Rosserial now works.
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