diff options
author | Karel Kočí <cynerd@email.cz> | 2015-10-11 13:33:40 +0200 |
---|---|---|
committer | Karel Kočí <cynerd@email.cz> | 2015-10-11 13:33:40 +0200 |
commit | 861ed124caf5a403748c948b88afa4ef89cc1787 (patch) | |
tree | adf25c1873549c22a93ee4308c0a40361c0e22b3 /src | |
parent | c7c4a803c23829093914970af1e2336f261d66fa (diff) | |
download | avr-ioe-861ed124caf5a403748c948b88afa4ef89cc1787.tar.gz avr-ioe-861ed124caf5a403748c948b88afa4ef89cc1787.tar.bz2 avr-ioe-861ed124caf5a403748c948b88afa4ef89cc1787.zip |
Add USART FILE interface
! NOT TESTED !
Diffstat (limited to 'src')
-rw-r--r-- | src/usart.c | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/src/usart.c b/src/usart.c index 0e17aff..745d75c 100644 --- a/src/usart.c +++ b/src/usart.c @@ -117,7 +117,7 @@ void usart_send_str(char *str) { #ifdef _IOE_USART_INBUFFER uint8_t usart_get(void) { - uint8_t rtn = 0; + uint8_t rtn; IOEBUFFER_GET(_ioe_usart_inbuffer, CONFIG_IOE_USART_INBUFFER_SIZE, rtn); return rtn; @@ -150,6 +150,36 @@ uint8_t usart_outbuffered(void) { } #endif +#ifdef CONFIG_IOE_USART_OUTFILE +static int usartput(char c, FILE * f) { + usart_send((uint8_t) c); + return 0; +} +#endif + +#ifdef CONFIG_IOE_USART_INBUFFER +static int usartget(FILE * f) { + uint8_t v; + while (!(v = usart_get())); + return v; +} +#endif + +#if (defined CONFIG_IOE_USART_INFILE) || (defined CONFIG_IOE_USART_OUTFILE) +FILE *usart_async_open(void) { + usart_init_async(); +#ifdef CONFIG_IOE_USART_OUTFILE +#ifdef CONFIG_IOE_USART_INFILE + return fdevopen(spiput, spiget); +#else + return fdevopen(spiput, 0); +#endif +#else + return fdevopen(0, spiget); +#endif +} +#endif + ////// Interrupts //////////////////////////////// void (*usart_receive) (uint8_t data) = 0; void (*usart_sent) (void) = 0; |