Here is a sample sketch that resets the AVR using the watchdog reset.
I don't know what Arduino board or bootloader you have so
I will caution you that unless you have an updated bootloader or the optiboot bootloader,
the avr will get stuck infinitely reseting itself as the older bootloaders do not properly handle
the watchdog reset.
The symptom of this infinite reset is that you will not see the setup message nor the countdown
more than once. If it is working, then you will see these repeat.
--- bill
#include <avr/wdt.h>
void setup()
{
Serial.begin(9600);
Serial.println("setup()");
}
void loop()
{
Serial.println("Top of loop()");
for(int x = 3; x ; x--)
{
Serial.println(x);
delay(1000);
}
Serial.println("Reseting Arduino");
resetArduino();
}
void resetArduino()
{
wdt_enable(WDTO_15MS);
noInterrupts();
while(1); // wait to die and be reborn....
}