Bonjour,
est t'il possible de RESETer en interne un microcontrôleur, j'utilise le PIC18F97J94. je veux faire un RESET seulement avec le software
http://ww1.microchip.com/downloads/e.../30000575C.pdf
Merci
-----
Bonjour,
est t'il possible de RESETer en interne un microcontrôleur, j'utilise le PIC18F97J94. je veux faire un RESET seulement avec le software
http://ww1.microchip.com/downloads/e.../30000575C.pdf
Merci
Y a qu'a lire :
§ 5.0 page 88
§ 5.7 page 97
Table 5-2 page 99
RESET page 594
Dans quel but ?je veux faire un RESET seulement avec le software
Bonjour,
Il doit y avoir une commande en assembleur pour le faire. Je le fais pour un PIC24F avec l'instruction asm("RESET"); (appelée dans mon code C)
DAUDET78 je ne sais pas dans quel but achach veut l'utiliser, mais pour ma part je l'utilise dans 2 cas particuliers :
- Pour passer en bootloader quand le système tourne en mode "super utilisateur"
- Un client voulait que le système redémarre de lui même lors des changements de paramètres systèmes, sans avoir à faire un ON/OFF brutal (on séquence les alimentations)
Bonjour,
il a été demandé par mon client, il voulait reseter le soft via une commande avec l'USB.
Merci
Je crois que l'instruction existe pour toutes les familles de PIC (et je pense que pour la plupart des microcontrôleurs en général, vous imaginez devoir utiliser une sortie pour agir sur l'entrée reset...)
Donc comme je le disais il y a l'instruction asm("RESET"); ou la macro Reset(); qui doivent fonctionner
Pour info (re)
Les "vieux" 16F n'en ont pas, mais pas besoin d'une sortie sur le "reset" hard.
Un branchement à l'adresse suffit.
Et oui, le µC du demandeur contient l'instruction RESET, c'est à se demander si les gens lisent les doc.
j'ai arrivé à faire un Reset avec la macro RESET();
je suis un peu curieux, je veux essayer la 1ere solution,comment faut'il faire pour utiliser l'instruction asm("RESET"); à appeler dans mon code C.
j'utlise MPLAB X V3.05 avec le C18
Merci
Ben en incluant tel quel l'instruction asm("RESET"); dans le programme :
Code:if(condition == TRUE) { asm("RESET"); }
Quel intérêt d’insérer du code ASM dans ton programme en C ?
On fait ça quand on veut optimiser la vitesse d’exécution d'un programme .
Par exemple quand il n'y a pas de macro définie mais personnellement je préfère utiliser une instruction asm pour les fonctions "spéciales" comme par exemple réinitialiser le watchdog, entrer en mode veille, c'est la même chose mais je trouve qu'au niveau de la lecture c'est plus simple pour les retrouver que si c'est une macro : les macro sont de la même couleur que tous les objet définis (#define) alors que l'instruction asm apparaît comme une instruction.Quel intérêt d’insérer du code ASM dans ton programme en C ?
A chacun ses habitudes le code en est tout autant lisible et le fonctionnement inchangé, donc les deux solutions sont bonnes.
Aucune lib spécifique mais peut être une option dans MPLAB, mais les compilateurs C18 et C30 sont obsolètes il me semble, j'utilise XC16 pour le PIC24F, peut être qu'avec XC8 pour le PIC18F ça fonctionnera
Bonjour
D'après le manuel de C18, avec ce compilateur le code devrait présenter la syntaxe suivante :
Code:_asm RESET _endasm
Sinon, toujours d'après ce manuel, il est prévu une macro pour exécuter l'instruction de RESET :
Code:Reset();