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 : mazertoc
debut avec le debuguer
Je m'etait trompé de post, désolé
je le remet dans celui ci
deja, les variables
sur 16f84 J'ai:
Code : Tout sélectionner
Je sais qu'il faut changer leurs adresses mais je n'arrive pas a mettre les bonnes
il y a 0x20 et suivant
puis 0x70 et suivant
Pas facile le Jean-Marc
je le remet dans celui ci
deja, les variables
sur 16f84 J'ai:
Code : Tout sélectionner
Code : Tout sélectionner
TempC equ 0x0c ; Registres temporaires
usage gnral
TempD equ 0x0d
TempE equ 0x0e
Count equ 0x0f ; Compteur
MsdTime equ 0x10 ; MSD du timer
LsdTime equ 0x11 ; LSD du timer
cmppt1 equ 0x12 ; compteur de boucles 1
afficheur equ 0x13 ; selection de afficheur demandé
OptionReg equ 1
PCL equ 2
BcdMsd equ 26
Bcd equ 27
Je sais qu'il faut changer leurs adresses mais je n'arrive pas a mettre les bonnes
il y a 0x20 et suivant
puis 0x70 et suivant
Pas facile le Jean-Marc
debut avec le debuguer
- paulfjujo
Expert- Messages : 2597
- Âge : 73
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonsoir,
de mes souvenirs ASM
il me reste l'usage de la directive d'assemblage cbloc pour definir l'origine des regsitres RAM à utiliser
exemple :
donc pas besoin d'expliciter specifiquement chaque adresse de registre
La zone 0x70 etant une zone commune pour chaque bank de ram
utilisée surtout pour la sauvegarde du contexte en cas d'usage d'interruption
BigonOFF notre maitre à tous ,donne pas mal d'exemple d'entete de fichier resumant cela
de mes souvenirs ASM
il me reste l'usage de la directive d'assemblage cbloc pour definir l'origine des regsitres RAM à utiliser
exemple :
Code : Tout sélectionner
cblock 0x0C
FREQ_H
FREQ_M
FREQ_L
ACC_H
ACC_M
ACC_L
TEMP
DELAY_W
DELAY_T
DELAY_H
DELAY_L
indice
RsCount
RsBuffer : 16 ; 16 bytes !
count1
RsByte
Cpt1
sauve
btmp
bun
bdix
endc
donc pas besoin d'expliciter specifiquement chaque adresse de registre
La zone 0x70 etant une zone commune pour chaque bank de ram
utilisée surtout pour la sauvegarde du contexte en cas d'usage d'interruption
BigonOFF notre maitre à tous ,donne pas mal d'exemple d'entete de fichier resumant cela
debut avec le debuguer
bonsoir
paul ma double
A+
paul ma double
Code : Tout sélectionner
;*********************** Variables *********************************************
CBLOCK 0x0C
Lig1:d'16' ;Butb:FF Hys:20 J
Lig2:d'16' ;Ins:FF Po:X Ec:X
Lig3:d'16' ;ici valeur hexa
Tem_Ech ;pour tempo echantillonnage
Tem_Ecl ;pour tempo eclairage
Tem_ARO ;pour tempo arrosage
Tem_LED ;pour eclairage du LCD
Tem_Sec
Tem_Min
k,Nder ;pour boucle,test bit(structure)
Buth,Hyst
ENDC
A+
debut avec le debuguer
Dans ces variables ce qui est intéressant c'est Nder qui est une variable de sturcture de bits
comme ce ci
A+
comme ce ci
Code : Tout sélectionner
#DEFINE PassM Nder,0
#DEFINE PassD Nder,1 ;structure bits
#DEFINE ARO Nder,2
A+
debut avec le debuguer
Pour bien comprendre voici les registres, avec leurs bancs, et leurs ram.
Comme tu peux voir, quand tu déclares une variable, c'est une adresse que tu lui attribues, pas son contenu.
En bank0, ta mémoire démarre de 20 à 7F, tu places tes variable dans cette tranche.
exemple :
D'autre par, si le montage ne fonctionne pas, c'est normal, ça vient surement pas, de tes variables, sur un 16F877 certain
registres sont placés de façon différente.
Je te laisse regarder le fichier joint, avec les registres, et sa ram, je te conseille de l'imprimer.
Comme tu veux comprendre par toi même, je t'en dit pas plus.
A+
Comme tu peux voir, quand tu déclares une variable, c'est une adresse que tu lui attribues, pas son contenu.
En bank0, ta mémoire démarre de 20 à 7F, tu places tes variable dans cette tranche.
exemple :
Code : Tout sélectionner
temps EQU H'30'
tmps EQU H'31'
tmps_new EQU H'32'
tmps_old EQU H'33'
loop1 EQU H'34'
loop2 EQU H'35'
loop3 EQU H'36'
loop4 EQU H'37'
loop5 EQU H'38'
D'autre par, si le montage ne fonctionne pas, c'est normal, ça vient surement pas, de tes variables, sur un 16F877 certain
registres sont placés de façon différente.
Je te laisse regarder le fichier joint, avec les registres, et sa ram, je te conseille de l'imprimer.
Comme tu veux comprendre par toi même, je t'en dit pas plus.
A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Modifié en dernier par Temps-x le ven. 9 sept. 2016 22:28, modifié 5 fois.
debut avec le debuguer
Que dire de plus, utiliser la directive Cblock est bien plus souple que la directive EQU. Pour preuve comment définir une ligne de LCD de 16 variables par exemple avec EQU dur dur .Avce CBLOCK:
Lig1:d'16' ;Butb:FF Hys:20 J
c'est ma premier de mon LCD qui en contient 2
A+
il serait bien si tu as un problème avec les variables c'est d'ouvrir un nouveau post plus lisible pour les autres si tu es ok demande au moderateur de bascule les post s vers ton nouveau fil sinon on continue
Lig1:d'16' ;Butb:FF Hys:20 J
c'est ma premier de mon LCD qui en contient 2
A+
il serait bien si tu as un problème avec les variables c'est d'ouvrir un nouveau post plus lisible pour les autres si tu es ok demande au moderateur de bascule les post s vers ton nouveau fil sinon on continue
debut avec le debuguer
debut avec le debuguer
JMarc a écrit :Si cela ne gêne pas, continuons celui ci pour le débuger, je sent que je vais en avoir besoin.
Si je trouve pas pour les variables, j'ouvrirai un autre post
Bonjour
Les variables avec les directives Cblock,GLOBAL,et EQU c'est plutôt coté compilateur.Tu as fais le tour, pour déclarer des variables Tout cela ce n'est pas IDE MPLABXou son debug .
Comme tu feras ,cela sera BIEN voir tres bien
A+
debut avec le debuguer
Retourner vers « Langage ASM »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 60 invités