***************************************************************************/
#ifndef UART_H
#define UART_H
+#include <avr/io.h>
#include <avr/pgmspace.h>
extern void uart_init(void);
extern unsigned char uart_getchar_isr_noblock(char *returnval); // get a char from buffer if available
extern void uart_sendchar(char c); // blocking, no buffer
extern void uart_sendstr(char *s); // blocking, no buffer
-extern void uart_sendstr_p(const prog_char *progmem_s); // blocking, no buffer
+extern void uart_sendstr_p(const char *progmem_s); // blocking, no buffer
+// uart_sendstr_p can be used like this: uart_sendstr_p(PSTR("my string"));
/*
// you can either use the above _isr functions or one of the
// following two but you can not mix them.
extern void uart_flushRXbuf(void);
*/
-/*
-** macros for automatically storing string constant in program memory
-*/
-#ifndef P
-#define P(s) ({static const char c[] __attribute__ ((progmem)) = s;c;})
-#endif
-#define uart_sendstr_P(__s) uart_sendstr_p(P(__s))
#endif /* UART_H */