Bienvenue aux nouveaux arrivants sur FantasPic !

- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.

--- L’équipe FantasPic ---
Forum général sur l'Assembleur !

Modérateur : mazertoc

problème MPLAB SIM v8.92
Nadril
Membre
Membre
Messages : 9
Enregistré en : juillet 2022

#1 Message par Nadril » mer. 16 nov. 2022 14:04

Bonjour à tout le forum.
J'ai installé MPLAB IDE v8.92 comme vous me l'avez conseillé et vous en remercie. J'ai cependant un soucis avec MPLAB SIM.
Il fonctionne correctement temps que je ne rentre pas en interruption. En reprenant le programme principal à la sortie d'interruption, si
celui-ci rencontre un saut,(goto ou call) il retourne à l'origine (0x000) et passe en run, le pointeur de ligne vert disparait. Il ne faut alors quitter MPLAB IDE pour reprendre la main sur le programme. J'utilise Windows 10 home 64 bits. L'un de vous a-t-il une solution ? Merci !
Le hasard, c'est Dieu qui se promène incognito. Citations d'Albert Einstein exit

problème MPLAB SIM v8.92
francois77
Passioné
Passioné
Messages : 307
Enregistré en : avril 2022

#2 Message par francois77 » mer. 16 nov. 2022 17:24

Bonjour

Le plus simple c'est de mettre votre programme sur le site pour que nous puissions regarder votre codage

Cdt,

Francois

problème MPLAB SIM v8.92
Nadril
Membre
Membre
Messages : 9
Enregistré en : juillet 2022

#3 Message par Nadril » mer. 16 nov. 2022 18:19

Voilà, voilà.....François!
Fichierasm.odt
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Le hasard, c'est Dieu qui se promène incognito. Citations d'Albert Einstein exit

problème MPLAB SIM v8.92
francois77
Passioné
Passioné
Messages : 307
Enregistré en : avril 2022

#4 Message par francois77 » mer. 16 nov. 2022 19:57

Bonsoir,
Pas le courage pour ce soir
Regarde les cours de Maitre BIGONOFF, j’ai démarré par lui
A+
Francois

problème MPLAB SIM v8.92
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#5 Message par satinas » mer. 16 nov. 2022 20:19

Bonjour à tous,

Il en faut pas beaucoup pour que le programme perde la boule :)

Code : Tout sélectionner

; restaurer les registres
      MOVLW      PCLATH_temp      ; recharger ancien PCLATH
      MOVWF      PCLATH           ; le restaurer
      MOVLW      FSR_temp         ; charger FSR sauvé
      MOVWF      FSR              ; restaurer FSR
Le simulateur permet de détecter ce problème grâce au mode pas à pas. J'ai dû au préalable modifier le registre OPTION_REG pour sélectionner l'horloge système comme source du timer0, pour qu'une interruption se déclenche.

Avec un programme aussi long, il est conseillé de faire des macros et pseudo-instructions pour éviter ce genre d'erreur, souvent d'inattention.
Il semble qu'il manque en début de programme la directive "radix dec" permettant d'activer le mode décimal par défaut (voir les warnings à l'assemblage).
Est-il vraiment nécessaire de toucher à GIE en cours d'exécution du programme ?

problème MPLAB SIM v8.92
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2595
Enregistré en : juillet 2016
Localisation : Terre

#6 Message par Temps-x » jeu. 17 nov. 2022 02:26

Bonsoir Nadril, francois77, satinas, et tout le forum,

Nadril a écrit :Source du message celui-ci rencontre un saut,(goto ou call) il retourne à l'origine (0x000) et passe en run, le pointeur de ligne vert disparait.


Il y a plusieurs raison à ce problème, mais avant d'aller plus loin corrige ses lignes

T4.1ms MOVLW 175 ; boucle de 4,102ms

Warning[202] D:\DATAPIC\PICSOUR\16F877\DIVERS\MICROCONS.ASM 784 : Argument out of range. Least significant bits used.

T40 MOVLW 165 ; boucle de 40µs

Warning[202] D:\DATAPIC\PICSOUR\16F877\DIVERS\MICROCONS.ASM 813 : Argument out of range. Least significant bits used.
satinas a écrit :Source du message Il semble qu'il manque en début de programme la directive "radix dec"

Exact, d’où l’avertissement du compilateur qui ne sait pas si c'est exprimé en hexadécimal ou décimal

Pour info

Code : Tout sélectionner


    Errorlevel
-302                        ; Supprime le message "Ensure that bank bits are correct" 

    radix dec                             
; par defaut en mode décimal

    list p
=16F877A                        ; processeur utilisé 

    
#include <p16F877A.inc>               ; Définitions des constantes

    __CONFIG   _CP_OFF & _DEBUG_OFF & _WRT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _PWRTE_ON & _WDT_OFF & _HS_OSC 



A par cela le programme se compile correctement, je regarderais le reste demain, car vu l'heure je vais dormir :-)

==> A+
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

problème MPLAB SIM v8.92
Nadril
Membre
Membre
Messages : 9
Enregistré en : juillet 2022

#7 Message par Nadril » jeu. 17 nov. 2022 12:08

Bonjour à francois77, satinas, Temps-x et tout le forum
Je vous remercie pour vos retours rapide.
Je vais essayer de réponse et d'y voir un peut plus claire dans mon embrouille !

Je ne connais pas cette commande « radix dec », avec MPLAB je fais :
project > build options > project > MPASM assembler > général > défaut radix > je coche décimal c'est pas la même chose ?
Pour moi quand j'écris le nombre 21 > 0x15 c'est de l'hexadécimal et quand j'écris le nombre 21 c'est du décimal .

Pour les Warning[202] je suis plus préoccupé !
Quand j’appuie sur la touche F10 du clavier, j’obtiens dans la fenêtre "output" > "build" :
BUILD SUCCEEDED construction réussie (sans avertissement)
Dommage MPLAB ne veux pas que je fasse copier/coller, Je l'aurai publié.
Cela voudrait dire, puisque Temps-x a trouvé des Warning[202], que j'ai un mauvais réglage ? Non !
Voila ! Merci à tous de votre aide !
Le hasard, c'est Dieu qui se promène incognito. Citations d'Albert Einstein exit

problème MPLAB SIM v8.92
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#8 Message par satinas » jeu. 17 nov. 2022 14:55

Bonjour
Quelques explications complémentaires, quand tu ne comprends pas ce que j'écris, dis le on gagnera du temps :)

Lorsque tu écris "MOVLW PCLATH_temp" en fin de routine d'interruption, tu charges dans W l'adresse PCLATH_temp, c'est à dire 0x73, et ensuite tu mets cela dans PCLATH. Il ne faut pas t'étonner si après l'interruption le programme saute lors d'un GOTO/CALL à une adresse incorrecte. Il faut faire "MOVF PCLATH_temp,W", là tu charges bien dans W la valeur stockée à l'adresse PCLATH_temp, et pas l'adresse elle-même.
Idem pour "MOVLW FSR_temp".

Pour le radix si tu n'as pas de warning à l'assemblage, c'est bon. Tu l'as bien bien déclaré dans build options mais c'est mieux de le faire directement en début de programme sous forme d'une directive "radix dec", ainsi on met tout dans le fichier source. Avec cette directive, Temps-x et moi on aurait pas eu les warnings, comme quoi c'est plus mieux :)

problème MPLAB SIM v8.92
Nadril
Membre
Membre
Messages : 9
Enregistré en : juillet 2022

#9 Message par Nadril » jeu. 17 nov. 2022 18:53

Ah !........purée ! movlw et movfw
J'ai pas fait gaffe, ni dans mon programme, ni sur tes écris sanitas, tu n'en vois désolé.
Bon du coup movfw, à l'avenir c'est fini, ce sera movf registre, w
En espérant que j'y fasse plus attention.
Autrement j'ai fais les correctifs et testé c'est OK !
Grands merci à vous et désolé de vous avoir fait perdre votre temps.
nadril
Le hasard, c'est Dieu qui se promène incognito. Citations d'Albert Einstein exit

problème MPLAB SIM v8.92
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#10 Message par satinas » jeu. 17 nov. 2022 19:27

C'est quoi movfw une macro ? c'est vrai que la confusion avec movlw est possible, bien que instructions et macros sont affichées avec 2 couleurs distinctes. Sauf que ce n'est pas le cas pour movfw qui est une pseudo-instruction codée en dur dans masm.exe
Pourquoi dévalider les interruptions lors de l'affichage lcd ?


Retourner vers « Langage ASM »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 44 invités