@@ -12,6 +12,7 @@ const uint8_t ADD_INPUT_PIN_CMD = 0x02;
1212const uint8_t ADD_OUTPUT_PIN_CMD = 0x03 ;
1313const uint8_t SET_PIN_MODE_CMD = 0x04 ;
1414const uint8_t SET_REPORT_MODE_CMD = 0x05 ;
15+ const uint8_t ANALOG_WRITE = 0x06 ;
1516const uint8_t ACTUATE_CMD = 0xF0 ;
1617const uint8_t RESET_PINS = 0xFE ;
1718
@@ -40,6 +41,16 @@ uint8_t DIGITAL_PINS_COUNT = 0;
4041
4142const char * ACK = " \xFF\x00 " ;
4243
44+ /* *
45+ * ANALOG_WRITE: 0x06 0x03 [PIN] [H_VALUE][L_VALUE]
46+ */
47+ int analog_write (const char * data)
48+ {
49+ uint16_t data = (data[3 ] << 8 ) + data[4 ];
50+ analogWrite (data[2 ], data[3 ]);
51+ return 5 ;
52+ }
53+
4354/* *
4455 ANALOG_PRECISION: 0x01 0x01 [BITS]
4556*/
@@ -208,8 +219,6 @@ int actuate(const char* data)
208219 LOG (" =====================================" , " " );
209220 LOG (" Analog pin read: " , INPUT_PORTS[i]);
210221 LOG (" Analog read value: " , data);
211- Serial.println (analog_input_buffer[current_analog][(lecture * 2 ) + 1 ], HEX);
212- Serial.println (analog_input_buffer[current_analog][(lecture * 2 ) + 2 ], HEX);
213222
214223 current_analog++;
215224 } else
@@ -286,25 +295,9 @@ void setup() {
286295 executor[SET_REPORT_MODE_CMD] = &set_report_mode;
287296 executor[ACTUATE_CMD] = &actuate;
288297 executor[RESET_PINS] = &reset;
289-
290- // executor[SET_PIN_MODE_CMD]("\x04\x02\x3E\x00");
291- // executor[ANALOG_PRECISION_CMD]("\x01\x01\x0C");
292- // executor[SET_REPORT_MODE_CMD]("\x05\x03\x00\x09\x00");
293- // executor[ADD_INPUT_PIN_CMD]("\x02\x01\x3E");
294- // executor[SET_PIN_MODE_CMD]("\x04\x02\x3E\x00");
295- // // executor[ADD_INPUT_PIN_CMD]("\x02\x01\x3F");
296- // // executor[SET_PIN_MODE_CMD]("\x04\x02\x3F\x00");
297- // executor[ADD_INPUT_PIN_CMD]("\x02\x01\x28");
298- // executor[SET_PIN_MODE_CMD]("\x04\x02\x28\x00");
299- // executor[ADD_INPUT_PIN_CMD]("\x02\x01\x29");
300- // executor[SET_PIN_MODE_CMD]("\x04\x02\x29\x00");
301- // executor[ADD_INPUT_PIN_CMD]("\x02\x01\x2A");
302- // executor[SET_PIN_MODE_CMD]("\x04\x02\x2A\x00");
303-
304298}
305299
306300void loop () {
307- // executor[ACTUATE_CMD]("\xF0\x01\x2B\x01");
308301
309302 if (SerialUSB.available () > 0 )
310303 {
@@ -327,6 +320,4 @@ void loop() {
327320 LOG (" b_pos " , b_pos);
328321 }
329322 }
330-
331- delay (4000 );
332323}
0 commit comments