Thank you, will try that
any thoughts on why this is necessary. The arduino script is very simple and I dont understand why it requires the reset to work
the script:
/*
isadora triggering arduino
in isadora the key watches will sent 1-4 to the arduino, and the arduino will blink accordingly
created by r. holsopple
http://31down.org
2009
*/
int ledPin = 12; //the LED on the arduino board
byte incoming_byte; // raw user input
void setup()
{
pinMode(ledPin, OUTPUT);
Serial.begin(9600); //set isadora serial out to this speed under communications, make sure serial port is enabled
Serial.println("isadora control of arduino");
Serial.println(" do it manually with the keyboard");
// blink twice on startup
digitalWrite(ledPin, HIGH); // blink twice
delay(500); //pause for 500 milliseconds
digitalWrite(ledPin, LOW);
delay(500); //pause for 500 milliseconds
digitalWrite(ledPin, HIGH);
delay(500); //pause for 500 milliseconds
digitalWrite(ledPin, LOW);
}
void loop()
{
if (Serial.available() > 0) {
// read the incoming byte:
incoming_byte = Serial.read();
Serial.println(incoming_byte);
switch (incoming_byte) {
case 49://ascii 49 is the '1' key on the keyboard
Serial.println(" received a '1'");
digitalWrite(ledPin, HIGH); // blink once
delay(500); //pause for 100 milliseconds
digitalWrite(ledPin, LOW);
break;
// break is optional
case 50://ascii 50 is the '2' key on the keyboard
Serial.println(" received a '2'");
digitalWrite(ledPin, HIGH); // blink twice
delay(500); //pause for 500 milliseconds
digitalWrite(ledPin, LOW);
delay(500); //pause for 500 milliseconds
digitalWrite(ledPin, HIGH);
delay(500); //pause for 500 milliseconds
digitalWrite(ledPin, LOW);
break;
//********for all dousers
case 51://ascii 51 is the '3' key on the keyboard
Serial.println(" received a '3'");
digitalWrite(ledPin, HIGH); // blink three times
delay(500); //pause for 500 milliseconds
digitalWrite(ledPin, LOW);
delay(500); //pause for 500 milliseconds
digitalWrite(ledPin, HIGH);
delay(500); //pause for 500 milliseconds
digitalWrite(ledPin, LOW);
delay(500); //pause for 500 milliseconds
digitalWrite(ledPin, HIGH);
delay(500); //pause for 500 milliseconds
digitalWrite(ledPin, LOW);
break;
// break is optional
case 52://ascii 52 is the '4' key on the keyboard
Serial.println(" received a '4'");
digitalWrite(ledPin, HIGH); // blink four times
delay(500); //pause for 500 milliseconds
digitalWrite(ledPin, LOW);
delay(500); //pause for 500 milliseconds
digitalWrite(ledPin, HIGH);
delay(500); //pause for 500 milliseconds
digitalWrite(ledPin, LOW);
delay(500); //pause for 500 milliseconds
digitalWrite(ledPin, HIGH);
delay(500); //pause for 500 milliseconds
digitalWrite(ledPin, LOW);
delay(500); //pause for 500 milliseconds
digitalWrite(ledPin, HIGH); \
delay(500); //pause for 500 milliseconds
digitalWrite(ledPin, LOW);
break;
default:
// if nothing else matches, do the default
// default is optional
Serial.println("not for arduino");
}
}
}
this seems to be what I am looking for
void(* resetFunc) (void) = 0; //declare reset function @ address 0
...
resetFunc(); //call reset
...
how would I implement that in the above code?
alternatively the manufacturer recommends this:
http://support.atmel.no/bin/customer?=&action=viewKbEntry&id=21
both solutions are a bit above my head...
thank you