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 ---
On parle des Pics, sans rapport avec le langage ou la programmation

Modérateur : Jérémy

MPLAB, visu des variables dans la fenetre Watch
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 1413
Âge : 70
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#1 Message par F6FCO » ven. 15 déc. 2017 15:12

Bonjour,
Une question sur MPLAB 8.92, je peux bien visualiser l'état de mes registres mais je n'arrive pas à voir mes variables dans la fenetre Watch. Celles que j'ai créées n'apparaissent pas dans la liste. Comment fait-on ?
Une porte nand prend 2 bits en entrée... la cochonne !!! :langue:

MPLAB, visu des variables dans la fenetre Watch
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#2 Message par satinas » ven. 15 déc. 2017 15:19

Bonjour,
Il faut les ajouter à la main, tu cliques dans la colonne SYMBOL NAME, en dessous de la dernière ligne affichée, et tu tapes le nom de la variable. Avec un clic droit Property, tu peux changer son format d'affichage ascii, hexa, binaire, ...

MPLAB, visu des variables dans la fenetre Watch
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 1413
Âge : 70
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#3 Message par F6FCO » ven. 15 déc. 2017 15:47

C'est pourtant ce que je fais mais il y a un truc que je dois zapper car çà me dit 'Symbol not found'

Capture.PNG
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Une porte nand prend 2 bits en entrée... la cochonne !!! :langue:

MPLAB, visu des variables dans la fenetre Watch
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2595
Enregistré en : juillet 2016
Localisation : Terre

#4 Message par Temps-x » ven. 15 déc. 2017 15:55

Normal c'est une variable de 5 octets, la variable mavariable, il faut cliquer sur propriété est la passer en 32 bits
Et ta compilation doit avoir une erreur, regarde le fichier d’extension *.ERR

Et dit moi ce qui est marqué dedans
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

MPLAB, visu des variables dans la fenetre Watch
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 1413
Âge : 70
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#5 Message par F6FCO » ven. 15 déc. 2017 18:06

Je suis passé en 32 bits, même chose, puis j'ai changé la valeur de mavariable à 1, toujours pareil. Pas d'erreur de compilation.

Capture.PNG
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Une porte nand prend 2 bits en entrée... la cochonne !!! :langue:

MPLAB, visu des variables dans la fenetre Watch
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2595
Enregistré en : juillet 2016
Localisation : Terre

#6 Message par Temps-x » ven. 15 déc. 2017 20:24

Peux tu regarder le fichier généré par l'éditeur Led_cli.err, et mettre le résultat ici

As tu sélection le pic 16F84 dans Select Device.. comme sur la photo jointe ?

Led_cli.jpg


Si toujours pas, on reprendra tous, et je te guiderai pas à pas, en faisant des captures d'écran :wink:
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

MPLAB, visu des variables dans la fenetre Watch
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 1413
Âge : 70
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#7 Message par F6FCO » ven. 15 déc. 2017 20:49

Merci pour ton aide. J'ai fini par trouver le fichier Led_cli.err, pas là ou je croyais. Voici ce qu'il contient:

Code : Tout sélectionner

Message[301] E:\MECATRONIQUE\---------------------------- PROGRAMMATION\DATAPIC\P16F84.INC 33 : MESSAGE: (Processor-header file mismatch.  Verify selected processor.)
Message[302] E:\MECATRONIQUE\DOC PROGRAMMATION\PIC\ASSEMBLEUR\BIGOCOURS\FICHIERS\LED_CLI.ASM 98 : Register in operand not in bank 0.  Ensure that bank bits are correct.
Message[302] E:\MECATRONIQUE\DOC PROGRAMMATION\PIC\ASSEMBLEUR\BIGOCOURS\FICHIERS\LED_CLI.ASM 104 : Register in operand not in bank 0.  Ensure that bank bits are correct.


Le 16F84A est bien sélectionné dans Configure/select device...

Je pense qu'il te faut aussi mon code:
Je ne comprends pas, la ligne 33 est un commentaire.

Code : Tout sélectionner

;**********************************************************************
;   
PROGRAMME DE CLIGNOTEMENT D'UNE LED CONNECTEE SUR LE PORTA.2      *
;   D'
UNE PIC16F84PROGRAMME D'ENTRAINEMENT AU FONCTIONNEMENT        *
;   DES PICS.                                                         *  
;                                                                     *
;**********************************************************************
;                                                                     *
;    NOM:      LED-CLI                                                *
;    Date:     09/02/2001                                             *
;    Version:  1.0                                                    *
;    Circuit:  Platine d'
essais                                       *
;    
Auteur:   Bigonoff                                               *
;                                                                     *
;**********************************************************************
;                                                                     *
;    
Fichier requisP16F84.inc                                       *
;                                                                     *
;**********************************************************************
;                                                                     *
;    
NotesCe petit programme permet de faire clignoter une LED      *
;           
sur le port A.2 à une fréquence de 1Hz                    *
;           
Ce programme fait partie de la leçon 6 des cours          *
;                                                                     *
;**********************************************************************


    LIST      
p=16F84            Définition de processeur
    
#include <p16F84.inc>        ; Définitions de variables

    
__CONFIG   _CP_OFF _WDT_OFF _PWRTE_ON _HS_OSC

'__CONFIG' précise les paramètres encodés dans le processeur au moment de
la programmation du processeurLes définitions sont dans le fichier include.
Voici les valeurs et leurs définitions :
;    
_CP_ON        Code protection ON impossible de relire
;    _CP_OFF        Code protection OFF
;    _PWRTE_ON    Timer reset sur power on en service
;    _PWRTE_OFF    Timer reset hors-service
;    _WDT_ON        Watch-dog en service
;    _WDT_OFF    Watch-dog hors service
;    _LP_OSC        Oscillateur quartz basse vitesse
;    _XT_OSC        Oscillateur quartz moyenne vitesse
;    _HS_OSC        Oscillateur quartz grande vitesse
;    _RC_OSC        Oscillateur à réseau RC

;*********************************************************************
;                              
ASSIGNATIONS                          *
;************************************
9+*********************************

OPTIONVAL    EQU    H'0008'            Valeur registre option
                                
Résistance pull-up ON
                                
Pas de préscaler

;*********************************************************************
;                             
DEFINE                                 *
;*********************************************************************

#DEFINE LED    PORTA,2            ; Led rouge
#DEFINE BOUTON    PORTB,2        ; bouton-poussoir


;*********************************************************************
;                             
MACRO                                  *
;*********************************************************************

LEDON macro    
        bsf    LED
    endm

LEDOFF macro
        bcf    LED
    endm

;*********************************************************************
;                   
DECLARATIONS DE VARIABLES                        *
;*********************************************************************

    
CBLOCK 0x00C           début de la zone variables
        cmpt1 
:1;
        
cmpt2 :1;
        
cmpt3 :1;
        
mavariable 1;
        
ENDC            Fin de la zone                        

;**********************************************************************
;                      
DEMARRAGE SUR RESET                            *
;**********************************************************************

    
org 0x000             Adresse de départ après reset
      
goto    init        Adresse 0initialiser

;*********************************************************************
;                       
INITIALISATIONS                              *
;*********************************************************************

init
    BANKSEL OPTION_REG
;
    
clrf    TRISA        ;
    ;
clrf    PORTA        Sorties portA à 0
    clrf    PORTB        
sorties portB à 0
    bsf        STATUS
,RP0    sélectionner banque 1
    clrf    EEADR        
permet de diminuer la consommation
    movlw    OPTIONVAL    
charger masque
    movwf    OPTION_REG    
initialiser registre option

            
Effacer RAM
            
; ------------
    
movlw    0x0c        initialisation pointeur
    movwf    FSR            
pointeur d'adressage indirec
init1
    clrf    INDF        ; effacer ram
    incf    FSR,f        ; pointer sur suivant
    btfss    FSR,6        ; tester si fin zone atteinte (>=40)
    goto    init1        ; non, boucler
    btfss    FSR,4        ; tester si fin zone atteinte (>=50)
    goto    init1        ; non, boucler

            ; initialisations spécifiques
            ; ---------------------------
    bcf    LED                ; LED en sortie (banque1)
    bcf    STATUS,RP0        ; repasser banque 0
    goto    start        ; sauter au programme principal

;*********************************************************************
;                      SOUS-ROUTINE DE TEMPORISATION                 *
;*********************************************************************
;---------------------------------------------------------------------
; Cette sous-routine introduit un retard de 500.000 µs.
; Elle ne reçoit aucun paramètre et n'
en retourne aucun
;---------------------------------------------------------------------
tempo
    movlw    2            
pour 2 boucles
    movwf    cmpt3        
initialiser compteur3
boucle3
    clrf    cmpt2        
effacer compteur2
boucle2
    clrf    cmpt1        
effacer compteur1
boucle1
    nop                    
perdre 1 cycle
    decfsz    cmpt1 
f    décrémenter compteur1
    
goto    boucle1        si pas 0boucler    
    decfsz    cmpt2 
f    si 0décrémenter compteur 2
    
goto    boucle2        si cmpt2 pas 0recommencer boucle1
    decfsz    cmpt3 
f    si 0décrémenter compteur 3
    
goto    boucle3        si cmpt3 pas 0recommencer boucle2
    
return                ; retour de la sous-routine

;*********************************************************************
;                      
PROGRAMME PRINCIPAL                           *
;*********************************************************************

start
    bsf    LED        
allumer la LED on aurait pu écrire
                
LEDON (voir les macros)
    ;
call     tempo        appeler la tempo de 0.5s
    bcf    LED        
éteindre LED (LEDOFF)
;    
call    tempo        appeler la tempor de 0.5s
    
goto start        boucler


    END             
directive fin de programme

Une porte nand prend 2 bits en entrée... la cochonne !!! :langue:

MPLAB, visu des variables dans la fenetre Watch
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 1413
Âge : 70
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#8 Message par F6FCO » ven. 15 déc. 2017 20:58

Oups, grace à toi j'ai trouvé des erreurs, 16F84A selectionné alors que le inc est pour un 16F84 :roll:
Je corrige déjà çà.
Une porte nand prend 2 bits en entrée... la cochonne !!! :langue:

MPLAB, visu des variables dans la fenetre Watch
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2595
Enregistré en : juillet 2016
Localisation : Terre

#9 Message par Temps-x » ven. 15 déc. 2017 21:01

Ok il y a bien des erreurs, insignifiant pour le compilateur, mais suffisant pour te faire des ennuis.



Code : Tout sélectionner


Message
[301] E:\MECATRONIQUE\---------------------------- PROGRAMMATION\DATAPIC\P16F84.INC 33 : MESSAGE: (Processor-header file mismatch. Verify selected processor.)


Ligne 33  : qui dit processeur pas sélectionner

Code : Tout sélectionner


Message
[302] E:\MECATRONIQUE\DOC PROGRAMMATION\PIC\ASSEMBLEUR\BIGOCOURS\FICHIERS\LED_CLI.ASM 98 : Register in operand not in bank 0. Ensure that bank bits are correct.

Message[302] E:\MECATRONIQUE\DOC PROGRAMMATION\PIC\ASSEMBLEUR\BIGOCOURS\FICHIERS\LED_CLI.ASM 104 : Register in operand not in bank 0. Ensure that bank bits are correc


Ligne 98 et 104 : mauvaise banque 

ça me le fait aussi  

:sifflotte: Voila le genre de message qu'on obtient avec les assignations, j'ai de l'expérience
je comprends que tu veules suivre les cours de Bigonoff, mais entre temps tous à évoluer, son cours date de 10 ans.  
mais reste valable, mais pas sur tous, donc faut en prendre est en laissé.

Normalement le fichier d’extension *.ERR doit être vide, et doit faire 0 octet, je regarde toujours ce fichier là
après la compilation.

Maintenant ça doit fonctionné.
Modifié en dernier par Temps-x le ven. 15 déc. 2017 21:10, modifié 1 fois.
:roll: Les requins, c'est comme le langage ASM, c'est le sommet de la chaîne alimentaire. :wink:

MPLAB, visu des variables dans la fenetre Watch
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 1413
Âge : 70
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#10 Message par F6FCO » ven. 15 déc. 2017 21:09

Bon, j'avais un peu tout bricolé (c'est comme çà qu'on apprends :wink: ).
Pour qu'on parte sur des bases saines on oublie les fichiers que j'ai posté su-dessus. J'ai rechargé le fichier propre de Bigonoff, fais un F10:BUILD SUCCDEDED, pas de fichier d'erreur généré mais les variables cmpt1, cmpt2, cmpt3 d'origine dans le fichier ne sont pas reconnues dans Watch.

Voici le fichier original:

Code : Tout sélectionner

;**********************************************************************
;
   PROGRAMME DE CLIGNOTEMENT D'UNE LED CONNECTEE SUR LE PORTA.2      *
;   D'
UNE PIC16F84. PROGRAMME D'ENTRAINEMENT AU FONCTIONNEMENT        *
;   DES PICS.                                                         *  
;                                                                     *
;**********************************************************************
;                                                                     *
;    NOM:      LED-CLI                                                *
;    Date:     09/02/2001                                             *
;    Version:  1.0                                                    *
;    Circuit:  Platine d'
essais                                       *
;
    Auteur:   Bigonoff                                               *
;
                                                                     *
;**********************************************************************
;
                                                                     *
;
    Fichier requis: P16F84.inc                                       *
;
                                                                     *
;**********************************************************************
;
                                                                     *
;
    Notes: Ce petit programme permet de faire clignoter une LED      *
;
           sur le port A.2 à une fréquence de 1Hz                    *
;
           Ce programme fait partie de la leçon 6 des cours          *
;
                                                                     *
;**********************************************************************


    LIST      p=16F84            ; Définition de processeur
    
#include <p16F84.inc>        ; Définitions de variables

    __CONFIG   _CP_OFF & _WDT_OFF & _PWRTE_ON & _HS_OSC

; '__CONFIG' précise les paramètres encodés dans le processeur au moment de
; la programmation du processeur. Les définitions sont dans le fichier include.
;
 Voici les valeurs et leurs définitions :
;
    _CP_ON        Code protection ON : impossible de relire
;    _CP_OFF        Code protection OFF
;    _PWRTE_ON    Timer reset sur power on en service
;    _PWRTE_OFF    Timer reset hors-service
;    _WDT_ON        Watch-dog en service
;    _WDT_OFF    Watch-dog hors service
;    _LP_OSC        Oscillateur quartz basse vitesse
;    _XT_OSC        Oscillateur quartz moyenne vitesse
;    _HS_OSC        Oscillateur quartz grande vitesse
;    _RC_OSC        Oscillateur à réseau RC

;*********************************************************************
;
                              ASSIGNATIONS                          *
;*********************************************************************

OPTIONVAL    EQU    H'0008'    ; Valeur registre option
                                
; Résistance pull-up ON
                                
; Pas de préscaler

;*********************************************************************
;
                             DEFINE                                 *
;*********************************************************************

#DEFINE LED    PORTA,2        ; Led rouge
#DEFINE BOUTON    PORTB,2        ; bouton-poussoir


;*********************************************************************
;
                             MACRO                                  *
;*********************************************************************

LEDON macro    
        bsf    LED
    endm

LEDOFF macro
        bcf    LED
    endm

;*********************************************************************
;
                   DECLARATIONS DE VARIABLES                        *
;*********************************************************************

    CBLOCK 0x00C           ; début de la zone variables
    
    cmpt1 
: 1        ; compteur de boucles 1
    cmpt2 
: 1        ; compteur de boucles 2
    cmpt3 
: 1        ; compteur de boucles 3

        ENDC            
; Fin de la zone                        

;**********************************************************************
;
                      DEMARRAGE SUR RESET                            *
;**********************************************************************

    org 0x000         ; Adresse de départ après reset
      goto    init        
; Adresse 0: initialiser

;*********************************************************************
;
                       INITIALISATIONS                              *
;*********************************************************************

init
    clrf    PORTA        
; Sorties portA à 0
    clrf    PORTB        
; sorties portB à 0
        bsf    STATUS
,RP0    ; sélectionner banque 1
    clrf    EEADR        
; permet de diminuer la consommation
    movlw    OPTIONVAL    
; charger masque
    movwf    OPTION_REG    
; initialiser registre option

            
; Effacer RAM
            
; ------------
    movlw    0x0c        ; initialisation pointeur
    movwf    FSR        
; pointeur d'adressage indirec
init1
    clrf    INDF        ; effacer ram
    incf    FSR,f        ; pointer sur suivant
    btfss    FSR,6        ; tester si fin zone atteinte (>=40)
    goto    init1        ; non, boucler
    btfss    FSR,4        ; tester si fin zone atteinte (>=50)
    goto    init1        ; non, boucler

            ; initialisations spécifiques
            ; ---------------------------
    bcf    LED        ; LED en sortie (banque1)
    bcf    STATUS,RP0    ; repasser banque 0
    goto    start        ; sauter au programme principal

;*********************************************************************
;                      SOUS-ROUTINE DE TEMPORISATION                 *
;*********************************************************************
;---------------------------------------------------------------------
; Cette sous-routine introduit un retard de 500.000 µs.
; Elle ne reçoit aucun paramètre et n'
en retourne aucun
;---------------------------------------------------------------------
tempo
    movlw    2        
; pour 2 boucles
    movwf    cmpt3        
; initialiser compteur3
boucle3
    clrf    cmpt2        
; effacer compteur2
boucle2
    clrf    cmpt1        
; effacer compteur1
boucle1
    nop            
; perdre 1 cycle
    decfsz    cmpt1 
, f    ; décrémenter compteur1
    goto    boucle1        
; si pas 0, boucler    
    decfsz    cmpt2 
, f    ; si 0, décrémenter compteur 2
    goto    boucle2        
; si cmpt2 pas 0, recommencer boucle1
    decfsz    cmpt3 
, f    ; si 0, décrémenter compteur 3
    goto    boucle3        
; si cmpt3 pas 0, recommencer boucle2
    return            
; retour de la sous-routine

;*********************************************************************
;
                      PROGRAMME PRINCIPAL                           *
;*********************************************************************

start
    bsf    LED        
; allumer la LED : on aurait pu écrire
                
; LEDON (voir les macros)
    call     tempo        ; appeler la tempo de 0.5s
    bcf    LED        
; éteindre LED (LEDOFF)
    call    tempo        ; appeler la tempor de 0.5s
    goto start        
; boucler


    END             
; directive fin de programme

Une porte nand prend 2 bits en entrée... la cochonne !!! :langue:


Retourner vers « Généralités sur les PICs »

Qui est en ligne

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