//Выводит текст сохранённый во Flash(памяти программ)
#include <avr/io.h>
#include <avr/pgmspace.h>
typedef unsigned char U8;
#define ignore(x)
void put(U8 ch)
{
ignore( ch );
//<<< ВАШ КОД ВЫВОДА ОДНОГО СИМВОЛА КУДА ТРЕБУЕТСЯ (UART/LCD и проч) >>
}
static void __pgm_print(const U8 PROGMEM *str)
{
U8 ch;
while ( (ch = pgm_read_byte(str++)) != 0)
put(ch);
}
#define pgm_print(x) do {\
static const U8 PROGMEM str[] = x;\
__pgm_print( str );\
} while(0)
void main(void)
{
pgm_print("Hello!");
pgm_print("this program demonstrates an easy way of\n");
pgm_print("printing string literals stored in flash\n");
for(;;);
}