int main(void) { initUSART(); uint8_t myArray[] = { 10, 11, 12 }; uint8_t *p; uint8_t i; p = &myArray[0]; for (i = 0; i < sizeof(myArray); i++) { printByte(*(p + i)); printString("\r\n"); _delay_ms(1000); } /* To use them: */ char *stringPointer; /* Get the pointer to the string you want from PROGMEM */ stringPointer = (char *) pgm_read_word(&stringIndex[0]); printString_Progmem(stringPointer); /* or */ stringPointer = (char *) pgm_read_word(&stringIndex[1]); printString_Progmem(&stringPointer[0]); /* or */ printString_Progmem(PSTR("And this string got inlined.\r\n")); while (1) { printData_Progmem(myData, sizeof(myData) / sizeof(myData[0])); printString("\r\n"); _delay_ms(1000); } /* End event loop */ return 0; /* This line is never reached */ }
int main(void) { initUSART(); while (1) { printString_Progmem(&myVeryLongString1[0]); printString_Progmem(&myVeryLongString1[50]); printString_Progmem(myVeryLongString2); _delay_ms(1000); } /* End event loop */ return (0); /* This line is never reached */ }