Go Down

Topic: reset code (Read 496 times) previous topic - next topic

maddave

is there a comand that will reset the arduino


thanks

WizenedEE

You could set the watchdog timer for a short timeout, or insert a line of assembly "jmp 0", which will restart the code but not reset the IO pins and that sort of thing.

However, in nearly every instance, you should redesign your code rather than require a reset.

N314

You could wire a digital pin to the reset pin and reset it that way.

WizenedEE


You could wire a digital pin to the reset pin and reset it that way.


The datasheet specifically advises against that, actually. The IO pins get set back to high impedance  before a "full" reset happens.

bperrybap

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
Code: [Select]

#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....
}


Go Up