8
8
#include < Wire.h> // I2C library
9
9
#include < I2C_eeprom.h>
10
10
11
+
12
+ #define SERIAL_OUT SerialUSB
13
+
11
14
I2C_eeprom ee (0x50 );
12
15
13
16
uint32_t totals = 0 ;
@@ -16,159 +19,163 @@ void setup()
16
19
{
17
20
ee.begin ();
18
21
19
- Serial.begin (115200 );
20
- Serial.print (" Demo I2C eeprom library " );
21
- Serial.print (I2C_EEPROM_VERSION);
22
- Serial.println (" \n " );
22
+ SERIAL_OUT.begin (57600 );
23
+ while (!SERIAL_OUT) {
24
+ ; // wait for SERIAL_OUT port to connect. Needed for Leonardo only
25
+ }
26
+
27
+ SERIAL_OUT.print (" Demo I2C eeprom library " );
28
+ SERIAL_OUT.print (I2C_EEPROM_VERSION);
29
+ SERIAL_OUT.println (" \n " );
23
30
24
- Serial .println (" \n TEST: 64 byte page boundary writeBlock" );
31
+ SERIAL_OUT .println (" \n TEST: 64 byte page boundary writeBlock" );
25
32
ee.setBlock (0 ,0 ,128 );
26
33
dumpEEPROM (0 , 128 );
27
34
char data[] = " 11111111111111111111" ;
28
35
ee.writeBlock (60 , (uint8_t *) data, 10 );
29
36
dumpEEPROM (0 , 128 );
30
37
31
38
32
- Serial .println (" \n TEST: 64 byte page boundary setBlock" );
39
+ SERIAL_OUT .println (" \n TEST: 64 byte page boundary setBlock" );
33
40
ee.setBlock (0 ,0 ,128 );
34
41
dumpEEPROM (0 , 128 );
35
42
ee.setBlock (60 , ' 1' , 10 );
36
43
dumpEEPROM (0 , 128 );
37
44
38
45
39
- Serial .println (" \n TEST: 64 byte page boundary readBlock" );
46
+ SERIAL_OUT .println (" \n TEST: 64 byte page boundary readBlock" );
40
47
ee.setBlock (0 ,0 ,128 );
41
48
ee.setBlock (60 , ' 1' , 6 );
42
49
dumpEEPROM (0 , 128 );
43
50
char ar[100 ];
44
51
memset (ar,0 ,100 );
45
52
ee.readBlock (60 , (uint8_t *)ar, 10 );
46
- Serial .println (ar);
53
+ SERIAL_OUT .println (ar);
47
54
48
55
49
- Serial .println (" \n TEST: write large string readback in small steps" );
56
+ SERIAL_OUT .println (" \n TEST: write large string readback in small steps" );
50
57
ee.setBlock (0 ,0 ,128 );
51
58
char data2[] = " 0000000000111111111122222222223333333333444444444455555555556666666666777777777788888888889999999999A" ;
52
59
ee.writeBlock (10 , (uint8_t *) &data2, 100 );
53
60
dumpEEPROM (0 , 128 );
54
61
for (int i = 0 ; i<100 ; i++)
55
62
{
56
- if (i%10 == 0 ) Serial .println ();
57
- Serial .print (' ' );
58
- Serial .print (ee.readByte (10 +i));
63
+ if (i%10 == 0 ) SERIAL_OUT .println ();
64
+ SERIAL_OUT .print (' ' );
65
+ SERIAL_OUT .print (ee.readByte (10 +i));
59
66
}
60
- Serial .println ();
67
+ SERIAL_OUT .println ();
61
68
62
69
63
- Serial .println (" \n TEST: check almost endofPage writeBlock" );
70
+ SERIAL_OUT .println (" \n TEST: check almost endofPage writeBlock" );
64
71
ee.setBlock (0 ,0 ,128 );
65
72
char data3[] = " 6666" ;
66
73
ee.writeBlock (60 , (uint8_t *) &data3, 2 );
67
74
dumpEEPROM (0 , 128 );
68
75
69
- Serial .println ();
70
- Serial .print (" \n I2C speed:\t " );
71
- Serial .println (16000 /(16 +2 *TWBR));
72
- Serial .print (" TWBR:\t " );
73
- Serial .println (TWBR);
74
- Serial .println ();
76
+ // SERIAL_OUT .println();
77
+ // SERIAL_OUT .print("\nI2C speed:\t");
78
+ // SERIAL_OUT .println(16000/(16+2*TWBR));
79
+ // SERIAL_OUT .print("TWBR:\t");
80
+ // SERIAL_OUT .println(TWBR);
81
+ // SERIAL_OUT .println();
75
82
76
83
totals = 0 ;
77
- Serial .print (" \n TEST: timing writeByte()\t " );
84
+ SERIAL_OUT .print (" \n TEST: timing writeByte()\t " );
78
85
uint32_t start = micros ();
79
86
ee.writeByte (10 , 1 );
80
87
uint32_t diff = micros () - start;
81
- Serial .print (" TIME: " );
82
- Serial .println (diff);
88
+ SERIAL_OUT .print (" TIME: " );
89
+ SERIAL_OUT .println (diff);
83
90
totals += diff;
84
91
85
- Serial .print (" TEST: timing writeBlock(50)\t " );
92
+ SERIAL_OUT .print (" TEST: timing writeBlock(50)\t " );
86
93
start = micros ();
87
94
ee.writeBlock (10 , (uint8_t *) &data2, 50 );
88
95
diff = micros () - start;
89
- Serial .print (" TIME: " );
90
- Serial .println (diff);
96
+ SERIAL_OUT .print (" TIME: " );
97
+ SERIAL_OUT .println (diff);
91
98
totals += diff;
92
99
93
- Serial .print (" TEST: timing readByte()\t\t " );
100
+ SERIAL_OUT .print (" TEST: timing readByte()\t\t " );
94
101
start = micros ();
95
102
ee.readByte (10 );
96
103
diff = micros () - start;
97
- Serial .print (" TIME: " );
98
- Serial .println (diff);
104
+ SERIAL_OUT .print (" TIME: " );
105
+ SERIAL_OUT .println (diff);
99
106
totals += diff;
100
107
101
- Serial .print (" TEST: timing readBlock(50)\t " );
108
+ SERIAL_OUT .print (" TEST: timing readBlock(50)\t " );
102
109
start = micros ();
103
110
ee.readBlock (10 , (uint8_t *) &data2, 50 );
104
111
diff = micros () - start;
105
- Serial .print (" TIME: " );
106
- Serial .println (diff);
112
+ SERIAL_OUT .print (" TIME: " );
113
+ SERIAL_OUT .println (diff);
107
114
totals += diff;
108
115
109
- Serial .print (" TOTALS: " );
110
- Serial .println (totals);
116
+ SERIAL_OUT .print (" TOTALS: " );
117
+ SERIAL_OUT .println (totals);
111
118
totals = 0 ;
112
119
113
120
// same tests but now with a 5 millisec delay in between.
114
121
delay (5 );
115
122
116
- Serial .print (" \n TEST: timing writeByte()\t " );
123
+ SERIAL_OUT .print (" \n TEST: timing writeByte()\t " );
117
124
start = micros ();
118
125
ee.writeByte (10 , 1 );
119
126
diff = micros () - start;
120
- Serial .print (" TIME: " );
121
- Serial .println (diff);
127
+ SERIAL_OUT .print (" TIME: " );
128
+ SERIAL_OUT .println (diff);
122
129
totals += diff;
123
130
124
131
delay (5 );
125
132
126
- Serial .print (" TEST: timing writeBlock(50)\t " );
133
+ SERIAL_OUT .print (" TEST: timing writeBlock(50)\t " );
127
134
start = micros ();
128
135
ee.writeBlock (10 , (uint8_t *) &data2, 50 );
129
136
diff = micros () - start;
130
- Serial .print (" TIME: " );
131
- Serial .println (diff);
137
+ SERIAL_OUT .print (" TIME: " );
138
+ SERIAL_OUT .println (diff);
132
139
totals += diff;
133
140
134
141
delay (5 );
135
142
136
- Serial .print (" TEST: timing readByte()\t\t " );
143
+ SERIAL_OUT .print (" TEST: timing readByte()\t\t " );
137
144
start = micros ();
138
145
ee.readByte (10 );
139
146
diff = micros () - start;
140
- Serial .print (" TIME: " );
141
- Serial .println (diff);
147
+ SERIAL_OUT .print (" TIME: " );
148
+ SERIAL_OUT .println (diff);
142
149
totals += diff;
143
150
144
151
delay (5 );
145
152
146
- Serial .print (" TEST: timing readBlock(50)\t " );
153
+ SERIAL_OUT .print (" TEST: timing readBlock(50)\t " );
147
154
start = micros ();
148
155
int xx = ee.readBlock (10 , (uint8_t *) &data2, 50 );
149
156
diff = micros () - start;
150
- Serial .print (" TIME: " );
151
- Serial .println (diff);
157
+ SERIAL_OUT .print (" TIME: " );
158
+ SERIAL_OUT .println (diff);
152
159
totals += diff;
153
160
154
- Serial .print (" TOTALS: " );
155
- Serial .println (totals);
161
+ SERIAL_OUT .print (" TOTALS: " );
162
+ SERIAL_OUT .println (totals);
156
163
totals = 0 ;
157
164
158
165
// does it go well?
159
- Serial .println (xx);
166
+ SERIAL_OUT .println (xx);
160
167
161
- Serial .println (" \n TEST: determine size" );
168
+ SERIAL_OUT .println (" \n TEST: determine size" );
162
169
start = micros ();
163
170
int size = ee.determineSize ();
164
171
diff = micros () - start;
165
- Serial .print (" TIME: " );
166
- Serial .println (diff);
167
- Serial .print (" SIZE: " );
168
- Serial .print (size);
169
- Serial .println (" KB" );
172
+ SERIAL_OUT .print (" TIME: " );
173
+ SERIAL_OUT .println (diff);
174
+ SERIAL_OUT .print (" SIZE: " );
175
+ SERIAL_OUT .print (size);
176
+ SERIAL_OUT .println (" KB" );
170
177
171
- Serial .println (" \t Done..." );
178
+ SERIAL_OUT .println (" \t Done..." );
172
179
}
173
180
174
181
void loop ()
@@ -186,14 +193,14 @@ void dumpEEPROM(uint16_t addr, uint16_t length)
186
193
{
187
194
if (addr % 10 == 0 )
188
195
{
189
- Serial .println ();
190
- Serial .print (addr);
191
- Serial .print (" :\t " );
196
+ SERIAL_OUT .println ();
197
+ SERIAL_OUT .print (addr);
198
+ SERIAL_OUT .print (" :\t " );
192
199
}
193
- Serial .print (b);
200
+ SERIAL_OUT .print (b);
194
201
b = ee.readByte (++addr);
195
- Serial .print (" " );
202
+ SERIAL_OUT .print (" " );
196
203
}
197
- Serial .println ();
204
+ SERIAL_OUT .println ();
198
205
}
199
206
// END OF FILE
0 commit comments