collapse

* Posts Recentes

Rede de comboios elétricos totalmente autónomos 10 ton em Rust em realtime. por blabla
[18 de Setembro de 2022, 18:44]


NiMH por 18650 por almamater
[18 de Setembro de 2022, 17:21]


How We Get Down to 0.2nm CPUs and GPUs - TechTechPotato por blabla
[18 de Setembro de 2022, 15:38]


Nova secção de Raspberry Pi Bare Metal em C e em Rust e Systems Programming por blabla
[04 de Setembro de 2022, 08:55]


The code for AGI will be simple - John Carmack and Lex Fridman por blabla
[29 de Agosto de 2022, 07:36]


Wavelets: a mathematical microscope por blabla
[28 de Agosto de 2022, 20:50]


Bom livro - Dive Into Systems por blabla
[28 de Agosto de 2022, 12:19]


graus negativos inclinação por josecarlos
[28 de Agosto de 2022, 11:31]


Super obsolescência super programada? por SerraCabo
[06 de Agosto de 2022, 11:36]


Motor de aspirador por dropes
[02 de Agosto de 2022, 22:18]

Autor Tópico: Reset a Arduino por software/firmaware  (Lida 4939 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline SJD22

  • Mini Robot
  • *
  • Mensagens: 660
Reset a Arduino por software/firmaware
« em: 09 de Maio de 2011, 14:23 »
Caros,

o assunto diz tudo. É possível fazer reset ao Arduino (neste caso estou a usar o Atmega2560) por firmware? Ou seja, existe algum comando ou conjunto de comandos que seja equivalente a presseionar o botão de reset?

Obrigado.

Offline GnGz

  • Mini Robot
  • *
  • Mensagens: 665
Re: Reset a Arduino por software/firmaware
« Responder #1 em: 09 de Maio de 2011, 14:41 »
Não tenho a certeza mas acho que podes com o watchdog timer . Mas podes ligar um pino digital ao Reset e fazes digitalWrite(pinoreset, LOW); quando o pino de reset fica a low rinicia.

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.731
  • Helpdesk do sitio
Re: Reset a Arduino por software/firmaware
« Responder #2 em: 09 de Maio de 2011, 18:57 »
A melhor maneira é mesmo usar o watchdog, mas está desligado nos fuses, e para o ligares precisas de um programador ISP, podes fazer um jump para 0x0000, mas porque é que precisas de fazer reset ao código, regra geral isso tenta-se evitar?

void software_Reset() // Restarts program from beginning but does not reset the peripherals and registers
{
asm volatile ("  jmp 0");
Avr fanboy