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

debut avec le debuguer
JMarc
Passioné
Passioné
Messages : 493
Enregistré en : août 2016
Localisation : Dans le Sud...

#31 Message par JMarc » ven. 9 sept. 2016 20:11

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

Code : Tout sélectionner

TempC   equ     0x0c            Registres temporaires … usage g‚n‚ral
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
Avatar de l’utilisateur
Expert
Expert
Messages : 1032
Âge : 67
Enregistré en : juillet 2015
Localisation : 01120
Contact :

#32 Message par paulfjujo » ven. 9 sept. 2016 20:33

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 :

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
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#33 Message par Guest » ven. 9 sept. 2016 20:34

bonsoir

paul ma double :lol:

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
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#34 Message par Guest » ven. 9 sept. 2016 20:38

Dans ces variables ce qui est intéressant c'est Nder qui est une variable de sturcture de bits
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
Temps-x
Avatar de l’utilisateur
Confirmé
Confirmé
Messages : 880
Enregistré en : juillet 2016
Localisation : Terre

#35 Message par Temps-x » ven. 9 sept. 2016 21:00

Pour bien comprendre voici les registres, avec leurs bancs, et leurs ram.
Pic16F87x.jpg


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.
Quand la souris nargue le chat, c'est que son trou n'est pas loin.

debut avec le debuguer
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#36 Message par Guest » ven. 9 sept. 2016 21:16

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

debut avec le debuguer
JMarc
Passioné
Passioné
Messages : 493
Enregistré en : août 2016
Localisation : Dans le Sud...

#37 Message par JMarc » ven. 9 sept. 2016 22:18

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

Encore merci a vous tous pour cette patience Merci !

debut avec le debuguer
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#38 Message par Guest » sam. 10 sept. 2016 17:21

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 :wink: voir tres bien :lol:

A+

debut avec le debuguer
JMarc
Passioné
Passioné
Messages : 493
Enregistré en : août 2016
Localisation : Dans le Sud...

#39 Message par JMarc » dim. 11 sept. 2016 11:39

Bonjour les copains

Je voulais tout mettre en global et j'avais toujours un échec en compil.

Si pas plus de 6 variables en global, ça fonctionne :-D

Le programme ne fais pas encore ce que je veux mais cela m'entraîne pour le débuter

Jean-Marc trop content

debut avec le debuguer
Guest
Confirmé
Confirmé
Messages : 800
Enregistré en : mars 2017

#40 Message par Guest » dim. 11 sept. 2016 12:15

Bonjour JMarc tres étrange les 6 globales max

ici 7 cela passe sans problème
Capture .png


a suivre

A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.


Retourner vers « Langage ASM »

Qui est en ligne

Utilisateurs parcourant ce forum : Bing [Bot] et 4 invités