// pcRead - debugging using serial monitor
#include <EEPROM.h>
const char version [] = "PcRead 240209d";
int debug = 0;
// -----------------------------------------------------------------------------
// process single character commands from the PC
int val2 = 0;
int val = 0;
void
pcRead (void)
{
if (Serial.available()) {
int c = Serial.read ();
switch (c) {
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
val = c - '0' + (10 * val);
break;
case 'D':
debug ^= 1;
break;
case 'I':
pinMode (val, INPUT);
Serial.print ("pinMode ");
Serial.print (val);
Serial.println (" INPUT");
val = 0;
break;
case 'O':
pinMode (val, OUTPUT);
Serial.print ("pinMode ");
Serial.print (val);
Serial.println (" OUTPUT");
val = 0;
break;
case 'P':
pinMode (val, INPUT_PULLUP);
Serial.print ("pinMode ");
Serial.print (val);
Serial.println (" INPUT_PULLUP");
val = 0;
break;
case 'Q':
Serial.print ("EEPROM write ");
Serial.print (val);
Serial.print (" to adr ");
Serial.println (val2);
EEPROM.write (val2, val);
val = 0;
break;
case 'R':
Serial.print ("EEPROM read: ");
Serial.print (EEPROM.read (val));
Serial.print (" from addr ");
Serial.println (val);
val = 0;
break;
case 'V':
val2 = val;
Serial.print ("val2 = ");
Serial.println (val2);
val = 0;
break;
case 'a':
Serial.print ("analogRead: ");
Serial.println (analogRead (val));
val = 0;
break;
case 'c':
digitalWrite (val, LOW);
Serial.print ("digitalWrite: LOW ");
Serial.println (val);
val = 0;
break;
case 'p':
analogWrite (val2, val);
Serial.print ("analogWrite: pin ");
Serial.print (val2);
Serial.print (", ");
Serial.println (val);
val = 0;
break;
case 'r':
Serial.print ("digitalRead: pin ");
Serial.print (val);
Serial.print (", ");
Serial.println (digitalRead (val));
val = 0;
break;
case 's':
digitalWrite (val, HIGH);
Serial.print ("digitalWrite: HIGH ");
Serial.println (val);
val = 0;
break;
case 't':
Serial.print ("pinToggle ");
Serial.println (val);
digitalWrite (val, ! digitalRead (val));
val = 0;
break;
case 'v':
Serial.print ("\nversion: ");
Serial.println (version);
break;
case 'w':
Serial.print ("val = ");
Serial.println (val);
Serial.print (", val2 = ");
Serial.println (val2);
val = 0;
break;
case '\n': // ignore
break;
case '?':
Serial.println ("\npcRead:\n");
Serial.println (" [0-9] append to #");
Serial.println (" # D - set debug to #");
Serial.println (" # I - set pin # to INPUT");
Serial.println (" # O - set pin # to OUTPUT");
Serial.println (" # P - set pin # to INPUT_PULLUP");
Serial.println (" # Q - write # to EEPROM addr val2");
Serial.println (" # R - read EEPROM addr #");
Serial.println (" # V - set val2 to #");
Serial.println (" # a - analogRead (pin #)");
Serial.println (" # c - digitalWrite (pin #, LOW)");
Serial.println (" # p - analogWrite (val2, #)");
Serial.println (" # r - digitalRead (pin #)");
Serial.println (" # s - digitalWrite (pin #, HIGH)");
Serial.println (" t - toggle pin output");
Serial.println (" v - print version");
Serial.println (" w - print val and val2");
Serial.println (" ? - list of commands");
break;
default:
Serial.print ("unknown char ");
Serial.println (c,HEX);
break;
}
}
}
// -----------------------------------------------------------------------------
void
loop (void)
{
pcRead ();
}
// -----------------------------------------------------------------------------
void
setup (void)
{
Serial.begin(9600);
Serial.println (version);
}