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 ---
- 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 ---
Modérateur : Jérémy
MPLAB, visu des variables dans la fenetre Watch
MPLAB, visu des variables dans la fenetre Watch
MPLAB, visu des variables dans la fenetre Watch
MPLAB, visu des variables dans la fenetre Watch
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
Et ta compilation doit avoir une erreur, regarde le fichier d’extension *.ERR
Et dit moi ce qui est marqué dedans
MPLAB, visu des variables dans la fenetre Watch
MPLAB, visu des variables dans la fenetre Watch
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 ?
Si toujours pas, on reprendra tous, et je te guiderai pas à pas, en faisant des captures d'écran
As tu sélection le pic 16F84 dans Select Device.. comme sur la photo jointe ?
Si toujours pas, on reprendra tous, et je te guiderai pas à pas, en faisant des captures d'écran
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
MPLAB, visu des variables dans la fenetre Watch
- F6FCO
Expert- Messages : 1413
- Âge : 70
- Enregistré en : décembre 2017
- Localisation : Furtif je suis.
- Contact :
Merci pour ton aide. J'ai fini par trouver le fichier Led_cli.err, pas là ou je croyais. Voici ce qu'il contient:
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
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 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 *
;************************************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 0: initialiser
;*********************************************************************
; 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 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
MPLAB, visu des variables dans la fenetre Watch
MPLAB, visu des variables dans la fenetre Watch
Ok il y a bien des erreurs, insignifiant pour le compilateur, mais suffisant pour te faire des ennuis.
Ligne 33 : qui dit processeur pas sélectionner
Ligne 98 et 104 : mauvaise banque
ça me le fait aussi
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é.
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
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.
MPLAB, visu des variables dans la fenetre Watch
- F6FCO
Expert- Messages : 1413
- Âge : 70
- Enregistré en : décembre 2017
- Localisation : Furtif je suis.
- Contact :
Bon, j'avais un peu tout bricolé (c'est comme çà qu'on apprends ).
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:
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
Retourner vers « Généralités sur les PICs »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 40 invités