Subversion Repositories HomeAutomation

Rev

Blame | Last modification | View Log | SVN | RSS feed

  1. /******************************************************************************
  2.  * Copyright (C) 2005 Martin THOMAS, Kaiserslautern, Germany
  3.  * <eversmith@heizung-thomas.de>
  4.  * http://www.siwawi.arubi.uni-kl.de/avr_projects
  5.  *****************************************************************************
  6.  *
  7.  * File    : termio.c
  8.  * Version : 0.9
  9.  *
  10.  * Summary : Terminal Input/Output-Functions
  11.  *
  12.  *****************************************************************************/
  13.  
  14. #include <avr/io.h>
  15. #include <avr/pgmspace.h>
  16. #include <avr/interrupt.h>
  17.  
  18. #include <inttypes.h>
  19. #include <stdlib.h>
  20.  
  21. #include "termio.h"
  22. #include "uart.h"
  23.  
  24. #define putc_loc uart_putc
  25.  
  26. unsigned char term_timeout_flag;
  27.  
  28. void putc_cr(char c)
  29. {
  30.     if (c == '\n')  putc_loc('\r');
  31.     putc_loc(c);
  32. }
  33.  
  34. void term_putc(const char c)
  35. {
  36.     putc_loc(c);
  37. }
  38.  
  39. uint16_t term_getc()
  40. {
  41.     // uint16_t res;
  42.    
  43.     /* TODO - timeout */
  44.    
  45.     return uart_getc();
  46.    
  47.    
  48. }
  49.  
  50. void term_put_cr(void)
  51. {
  52.     putc_cr('\n');
  53. }
  54.  
  55. void term_puts(const char* tx_data)
  56. {
  57.     char c;
  58.     while( (c=*tx_data++) ) putc_cr(c);
  59. }
  60.  
  61. void term_puts_p(const char *progmem_tx_data)
  62. {  
  63.    uint8_t c=0;  
  64.    // uint8_t sreg;
  65.    
  66.    // sreg=SREG;
  67.    // cli();
  68.    while( (c=pgm_read_byte(progmem_tx_data++)) ) putc_cr(c);
  69.    // SREG=sreg;
  70. }
  71.  
  72. void term_puti(const int num)
  73. {
  74.     char buffer[8 * sizeof (int) + 1];
  75.     itoa(num,buffer,10);
  76.     term_puts(buffer);
  77. }
  78.  
  79. void term_puthex_byte(const uint8_t val)
  80. {
  81.     uart_puthex_byte(val);
  82. }
  83.    
  84. void term_putbin_byte(const uint8_t val)
  85. {
  86.     uart_putbin_byte(val);
  87. }
  88.  
  89.