|
44 | 44 | Modbus slave(SLAVE_ID, CTRL_PIN);
|
45 | 45 |
|
46 | 46 | void setup() {
|
47 |
| - var pinIndex; |
48 |
| - var eepromValue; |
| 47 | + uint16_t pinIndex; |
| 48 | + uint16_t eepromValue; |
49 | 49 |
|
50 | 50 | /* set pins for mode.
|
51 | 51 | */
|
52 | 52 | for (pinIndex = 3; pinIndex < 14; pinIndex++) {
|
53 | 53 | // get one 16bit register from eeprom
|
54 |
| - eepromValue = EEPROM.get(pinIndex * 2); |
| 54 | + EEPROM.get(pinIndex * 2, eepromValue); |
55 | 55 |
|
56 | 56 | // use the register value to set pin mode.
|
57 | 57 | switch (eepromValue) {
|
@@ -175,29 +175,28 @@ void writeDigitlOut(uint8_t fc, uint16_t address, uint16_t status) {
|
175 | 175 | */
|
176 | 176 | void writeMemory(uint8_t fc, uint16_t address, uint16_t length) {
|
177 | 177 | uint16_t value;
|
178 |
| - uint16_t pinIndex; |
| 178 | + uint16_t registerIndex; |
179 | 179 |
|
180 | 180 | // write to eeprom.
|
181 | 181 | for (int i = 0; i < length; i++) {
|
| 182 | + registerIndex = address + i; |
| 183 | + |
182 | 184 | // get uint16_t value from the request buffer.
|
183 | 185 | value = slave.readRegisterFromBuffer(i);
|
184 | 186 |
|
185 |
| - EEPROM.put((address + i) * 2, value); |
| 187 | + EEPROM.put(registerIndex * 2, value); |
186 | 188 |
|
187 | 189 | /* if this register sets digital pins mode,
|
188 | 190 | * set the digital pins mode.
|
189 | 191 | */
|
190 |
| - if ((address + i) < 14) { |
191 |
| - // get pin index. |
192 |
| - pinIndex = address + i; |
193 |
| - |
| 192 | + if (registerIndex < 14) { |
194 | 193 | // use the register value to set pin mode.
|
195 | 194 | switch (value) {
|
196 | 195 | case PIN_MODE_INPUT:
|
197 |
| - pinMode(pinIndex, INPUT); |
| 196 | + pinMode(registerIndex, INPUT); |
198 | 197 | break;
|
199 | 198 | case PIN_MODE_OUTPUT:
|
200 |
| - pinMode(pinIndex, OUTPUT); |
| 199 | + pinMode(registerIndex, OUTPUT); |
201 | 200 | break;
|
202 | 201 | }
|
203 | 202 | }
|
|
0 commit comments