#include "ax8052.h" #include "libmfuart0.h" #define uart_poll uart0_poll #define uart_txidle uart0_txidle #define uart_txfree uart0_txfree #define uart_rxcount uart0_rxcount #define uart_wait_txdone uart0_wait_txdone #define uart_wait_txfree uart0_wait_txfree #define uart_wait_rxcount uart0_wait_rxcount #define uart_rxpeek uart0_rxpeek #define uart_txpokehex uart0_txpokehex #define uart_txpoke uart0_txpoke #define uart_rxadvance uart0_rxadvance #define uart_txadvance uart0_txadvance #define uart_rx uart0_rx #define uart_tx uart0_tx #define uart_writestr uart0_writestr #define uart_writehexu16 uart0_writehexu16 #define uart_writehexu32 uart0_writehexu32 #define uart_writeu16 uart0_writeu16 #define uart_writeu32 uart0_writeu32 __reentrantb void uart_wait_rxcount(uint8_t v) __reentrant { uint8_t iesave = (IE & 0x80); for (;;) { EA = 0; if (uart_rxcount() >= v) break; if (!uart_poll()) wtimer_standby(); IE |= iesave; } IE |= iesave; } __reentrantb uint8_t uart_rx(void) __reentrant { uint8_t x; uart_wait_rxcount(1); x = uart_rxpeek(0); uart_rxadvance(1); return x; }