Revision 6ca98a3f
Eradicated use of signed chars in serial d'oh
toolbox/serial.c | ||
---|---|---|
1 |
#include "serial.h"
|
|
1 |
#include <stdint.h>
|
|
2 | 2 |
#include <avr/io.h> |
3 | 3 |
#include <avr/interrupt.h> |
4 |
#include "serial.h" |
|
4 | 5 |
|
5 | 6 |
static int rx_start = 0, rx_end = 0; |
6 |
static char rx_buffer[RX_BUFFER_SIZE];
|
|
7 |
static uint8_t rx_buffer[RX_BUFFER_SIZE];
|
|
7 | 8 |
|
8 | 9 |
ISR(USART1_RX_vect) { |
9 |
char data = UDR1;
|
|
10 |
uint8_t data = UDR1;
|
|
10 | 11 |
int new_end = rx_end+1; |
11 | 12 |
if (new_end == RX_BUFFER_SIZE) { |
12 | 13 |
new_end = 0; |
... | ... | |
43 | 44 |
} else { |
44 | 45 |
ret = rx_buffer[rx_start]; |
45 | 46 |
rx_start++; |
46 |
if (rx_start == RX_BUFFER_SIZE) |
|
47 |
if (rx_start == RX_BUFFER_SIZE) {
|
|
47 | 48 |
rx_start = 0; |
49 |
} |
|
48 | 50 |
} |
49 | 51 |
sei(); |
50 | 52 |
return ret; |
... | ... | |
57 | 59 |
sei(); |
58 | 60 |
} |
59 | 61 |
|
60 |
char serial_read_blocking() {
|
|
62 |
uint8_t serial_read_blocking() {
|
|
61 | 63 |
int c; |
62 | 64 |
do { |
63 | 65 |
c = serial_read(); |
... | ... | |
65 | 67 |
return c; |
66 | 68 |
} |
67 | 69 |
|
68 |
void serial_write(char* data, int length) {
|
|
70 |
void serial_write(uint8_t* data, int length) {
|
|
69 | 71 |
int i; |
70 | 72 |
for (i = 0; i < length; i++) { |
71 | 73 |
while (!(UCSR1A & _BV(UDRE1))); |
Also available in: Unified diff