-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathEEPROM-Serial.ino
79 lines (47 loc) · 1.7 KB
/
EEPROM-Serial.ino
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
#include <EEPROM.h>
String command;
void setup() {
Serial.begin(9600);
}
void loop() {
if (Serial.available() > 0) {
command = Serial.readStringUntil('\n');
String commandRead = command;
String commandWrite = command;
String sRead = "read";
String sWrite = "write";
commandRead.remove(4);
commandWrite.remove(5);
if (commandRead.equals(sRead)) {
String sreadArg1 = command.substring(5);
int readArg1 = sreadArg1.toInt();
if (readArg1 > 1023 || readArg1 < 0) {
Serial.println("Invalid, please enter a value from 1 to 1023");
}
else {
int valueEEP = EEPROM.read(readArg1);
Serial.print("The value is ");
Serial.println(valueEEP, DEC);
}
}
if (commandWrite.equals(sWrite)) {
String swriteArgs = command;
swriteArgs.remove(0, command);
int swriteSpace = swriteArgs.indexOf(' ');
String swriteArg1 = swriteArgs.substring(0, swriteSpace);
int writeArg1 = swriteArg1.toInt();
String swriteArg2 = swriteArgs.substring(swriteSpace + 1);
int writeArg2 = swriteArg2.toInt();
if (writeArg1 < 0 || writeArg1 > 1023 || writeArg2 < 0 || writeArg2 > 255) {
Serial.println("Invalid, enter a first number from 0 to 1023 and the second number from 0 to 255");
}
else {
byte byte1Arg2 = writeArg2 & 0XFF;
byte byte2Arg2 = (writeArg2 >> 8) & 0XFF;
EEPROM.write(writeArg1, byte1Arg2);
EEPROM.write(writeArg1 + 1, byte2Arg2);
Serial.println("Success!");
}
}
}
}