36 lines
784 B
C
36 lines
784 B
C
#include "uart.h"
|
|
#include "hardware/uart.h"
|
|
|
|
bool is_whitespace(char character) {
|
|
switch (character) {
|
|
case ' ' :
|
|
case '\n' :
|
|
case '\t' :
|
|
return true;
|
|
default :
|
|
return false;
|
|
}
|
|
}
|
|
|
|
void read_word(uart_inst_t *uart, char *buffer, int buffersize, bool *eol) {
|
|
for (uint i = 0; i < (buffersize - 1); ++i) {
|
|
buffer[i] = uart_getc(uart);
|
|
if (is_whitespace(buffer[i])) {
|
|
buffer[i + 1] = '\0';
|
|
}
|
|
}
|
|
|
|
char last_char;
|
|
do {
|
|
last_char = uart_getc(uart);
|
|
} while (is_whitespace(last_char));
|
|
|
|
buffer[buffersize - 1] = '\0';
|
|
}
|
|
|
|
void finish_line(uart_inst_t *uart) {
|
|
char last_char;
|
|
do {
|
|
last_char = uart_getc(uart);
|
|
} while (last_char != '\n');
|
|
}
|