blob: bcf84d67776a940d26ca636485356a9545dc9a5e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
|
/***
eeprom_reference example.
This example shows how to use the EEPROM
reference object EERef, which allows usage
similar to using a simple char (uint8_t in this case).
Running this sketch is not necessary, this is
simply highlighting certain programming methods.
Written by Christopher Andrews 2015
Released under MIT licence.
***/
#include <EEPROM.h>
void setup() {
/***
To create a reference to an EEPROM cell, simply create an EERef variable.
To let it know which cell you want to reference, you can simply assign the
address when you create it.
***/
EERef ref = 0;
/***
An equivalent way is by calling the constructor directly:
EERef ref( 0 );
***/
/** Using the reference **/
/***
Updating cell data.
To prevent unnecessary wear on the EEPROM cells
this function will only write the data when it
is different to what is already stored.
***/
ref.update( 44 ); //May write 44 if not present.
ref.update( 44 ); //This second call will not write anything.
/***
Assign values directly to the EEPROM cell.
You can use any form of assignment that would otherwise be available
to a standard uint8_t:
*=
/=
+=
-=
^=
%=
&=
|=
<<=
>>=
***/
ref = 4; /***
Take care to notice, this changes the EEPROM cell data, it does not
change the index of the cell referenced by 'ref'.
Only the initial declaration like 'EERef ref = 0;' will set the address.
Using an assignment anywhere else modifies the referenced cell.
To modify the referenced address after declaring your variable see below.
***/
/***
Changing the referenced object.
The class has a member named 'index' which is an integer you can modify.
***/
ref.index++; //Move reference to the next cell.
/***
Grouping of references.
Using EERef objects you can create a contiguous array referencing
non-contiguous EEPROM cells.
***/
EERef array[] = { 0, 20, 40, 60, 80 };
} //End of setup function.
void loop(){}
|