krnl 1
Loading...
Searching...
No Matches
datainflash.ino
Go to the documentation of this file.
1// HOW TO SAVE DATA IN FLASH
2#include <avr/pgmspace.h>
3
4
5const char string_0[] PROGMEM = "String 0"; // "String 0" etc are strings to store - change to suit.
6const char string_1[] PROGMEM = "String 1";
7const char string_2[] PROGMEM = "String 2";
8const char string_3[] PROGMEM = "String 3";
9const char string_4[] PROGMEM = "String 4";
10const char string_5[] PROGMEM = "String 5";
11
12const unsigned char mydata[11][10] PROGMEM =
13{
14 {0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09},
15 {0x0A,0x0B,0x0C,0x0D,0x0E,0x0F,0x10,0x11,0x12,0x13},
16 {0x14,0x15,0x16,0x17,0x18,0x19,0x1A,0x1B,0x1C,0x1D},
17 {0x1E,0x1F,0x20,0x21,0x22,0x23,0x24,0x25,0x26,0x27},
18 {0x28,0x29,0x2A,0x2B,0x2C,0x2D,0x2E,0x2F,0x30,0x31},
19 {0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x3A,0x3B},
20 {0x3C,0x3D,0x3E,0x3F,0x40,0x41,0x42,0x43,0x44,0x45},
21 {0x46,0x47,0x48,0x49,0x4A,0x4B,0x4C,0x4D,0x4E,0x4F},
22 {0x50,0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59},
23 {0x5A,0x5B,0x5C,0x5D,0x5E,0x5F,0x60,0x61,0x62,0x63},
24 {0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x6B,0x6C,0x6D}
25};
26
27
28// Then set up a table to refer to your strings.
29
30 const char * PROGMEM string_table[] = // change "string_table" name to suit
31{
32 string_0,
33 string_1,
34 string_2,
35 string_3,
36 string_4,
37 string_5
38};
39
40char buffer[30]; // make sure this is large enough for the largest string it must hold
41
42void setup()
43{
44 Serial.begin(9600);
45}
46
47
48void loop()
49{
50 /* Using the string table in program memory requires the use of special functions to retrieve the data.
51 The strcpy_P function copies a string from program space to a string in RAM ("buffer").
52 Make sure your receiving string in RAM is large enough to hold whatever
53 you are retrieving from program space. */
54
55
56 for (int i = 0; i < 6; i++)
57 {
58 strcpy_P(buffer, (char*)pgm_read_word(&(string_table[i]))); // Necessary casts and dereferencing, just copy.
59 Serial.println( buffer );
60 delay( 500 );
61 }
62}
63
volatile int i
const char string_0[] PROGMEM
void setup()
const char *PROGMEM string_table[]
char buffer[30]
void loop()