tretas:
Boas,Gostava de saber se existe alguma forma de resetar o arduino sem ser através do watchdog
if (ligacao_net_OK == true)
{
wdt_reset();
}
Estou a usar esse codigo para resetar o arduino mas não sei se é o mais eficiente para o que eu quero fazer. Cpts Zé tretas
E o bootloader já aceita o watchdog? Há uns tempos atrás isso nem era possível.
Essa instrucão faz reset do wdt, não do chip. aliás, da forma que está o chip nunca fará reset. O que podes fazer é se houver um erro, crias o WDT com um valor pequeno, e colocas uma instrucão de delay logo a seguir superior ao tempo que tens.
Algo assim:
if (ligacao_net_OK == FALSE)
{
wdt_enable(WDTO_15MS);
delay(1000);
}
Isto deve fazer o reset do chip.
HugoPT:
Gostava de saber se existe alguma forma de resetar o arduino sem ser através do watchdog
Sim apontando o programa para o vector de reset.No entanto a quem diga que nao se deve usar pois nao é garantido(nunca testei)
Isso faz reset ou apenas reinicia o programa deixando os estados como estavam?
Vi alguns posts à pressa acerca disso e não existem grandes solucões para isto:
http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&t=96822
http://www.avrfreaks.net/index.php?name=PNphpBB2&file=printview&t=65123
http://nongnu.org/avr-libc/user-manual/group__avr__watchdog.html
Também existem chips que fazem essa funcão... caso queiras algo profissional para isso.