Go Down

Topic: Reset Software. (Read 4368 times) previous topic - next topic

bricopin

Hello,
Lorsque je mets sous tension ma carte Arduino, ou bien lorsque j'ouvre la fenêtre série de l'IDE, je pensais qu'un Reset était exécuté.
Or pour moi il n'en ai rien.
Sur le Forum, j'ai trouvé un fil qui traite de la maniéré d'implanter un bout de code pour effectuer un reset par programme.
Code: [Select]
#include <avr/wdt.h>
// ...
wdt_enable(WDTO_15MS);
for(;;);

Donc, j'inclus ce bout de code au début de mon programme, et j'ai une erreur
Code: [Select]
NivelUp_07:5: error: expected `)' before ':' token
NivelUp_07:6: error: expected unqualified-id before 'for'
NivelUp_07:6: error: expected unqualified-id before ')' token

J'ai bien wdt.h dans un sous-repertoire Arduino
Merci a vous
JP

skywodd

Bonjour,

Quelle carte arduino ? Officielle ou chinoise ?
Quel version de l'ide et sous quel système ?
A tu coupais la piste / jumper RST_EN (reset enable) ?

Pour l'erreur sans le code complet c'est impossible de savoir ou ce situe l'erreur.
C'est surement un ':' ou lieu d'un ';' quelque par avant cette partie du code.
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

B@tto

J'ai jamais testé mais si on raccorde le pin RST à un pin digital et qu'on le met à LOW ?
Blog électronique : http://battomicro.wordpress.com/
Photographie : www.interactive-celebration.fr

Pac2Kro

J'ai lu que Atmel, le déconseillait fortement car (si j'ai bien compris) la commande passée sur le pin n'avait pas le temps de se finir que l'Atmel rebootait (à confirmer par les pro).

moonpyk

Ton bout de code en lui même est valide, un sketch minimal contenant juste :

Code: [Select]

#include <avr/wdt.h>

void setup() {
  wdt_enable(WDTO_15MS);
  for(;;);
}

void loop() {

}


Passe sans problème, il doit y avoir une erreur de syntaxe ailleurs dans ton code source.

bricopin

Hello,
Bon, au lieu de faire un copier/coller du code, j'ai écrit le code, et la plus d'erreur.
Je le charge dans la carte, et la aie, aie, aie.
La led 13 clignote à fond, mon programme ne me donne plus la main.
Je ne peux plus accéder à la carte pour recharger le programme original
Que puis faire
JP

B@tto

Pour moi c'est normal : le watchdog est lancé toute les 15ms ... wdt_enable ne doit être lancé que lorsque tu le souhaites


J'ai lu que Atmel, le déconseillait fortement car (si j'ai bien compris) la commande passée sur le pin n'avait pas le temps de se finir que l'Atmel rebootait (à confirmer par les pro).


Bah c'est pas le but nan ?
Blog électronique : http://battomicro.wordpress.com/
Photographie : www.interactive-celebration.fr

bricopin

Hello,
Bon, OK, ça je comprends bien.
Mais avant d'effectuer les modifs, comment faire pour réinstaller le programme initial (ou tout du moins virer celui qui pose problème)
JP

B@tto

Au moment de l'upload fait un reset manuel avec le bouton RESET. Il te faudra peut-être plusieurs essais
Blog électronique : http://battomicro.wordpress.com/
Photographie : www.interactive-celebration.fr

bricopin

J'ai fais de multiples essais mais sans succès.
La, je suis un peu perdu.
Y aurait il d'autres solutions ?
JP

B@tto

Programmateur externe, si tu as une autre arduino tu peux le faire. Sinon 10€ sur ebay
Blog électronique : http://battomicro.wordpress.com/
Photographie : www.interactive-celebration.fr

bricopin

Je peux éventuellement récupérer une autre carte( celle qui est installée pour les essais en réels)
Aurais-tu un lien à me préposer pour la manip à éffectuer
Merci pour tout
JP

B@tto

http://arduino.cc/en/Tutorial/ArduinoISP
Blog électronique : http://battomicro.wordpress.com/
Photographie : www.interactive-celebration.fr

bricopin

D'après ce que je peux comprendre, la manip est faite pour charger ou recharger le bootloader dans la carte.
Mais dans mon cas, le bootloader est présent et fonctionne.
C'est le programme implanté dans la carte qui pose problème.
Plus particulièrement l'instruction que j'ai rajouté (voir plus en avant dan le post)
Ce que je voudrais c'est me débarrasser du programme existant (le remplacer, le détruire, en mettre un vide, ....)
JP

B@tto

Oui mais ça fera la même chose ;) Programmer le bootloader implique un effacement préalable. D'ailleurs on se retrouve avec le traditionnel blink à la fin
Blog électronique : http://battomicro.wordpress.com/
Photographie : www.interactive-celebration.fr

Go Up