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

Soft de commande CNC en asm
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#251 Message par satinas » mar. 30 oct. 2018 18:00

L'instruction "movf translatZ" ne fait rien, tu as bien compris ?
L'instruction "movf translatZ,W" elle, copie la variable dans W.

Soft de commande CNC en asm
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 1413
Âge : 70
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#252 Message par F6FCO » mar. 30 oct. 2018 19:34

Oui c'est bon, j'ai tout compris et c'est même grâce à çà que j'ai pu remonter jusqu'au bug que je viens d'énoncer.
Une porte nand prend 2 bits en entrée... la cochonne !!! :langue:

Soft de commande CNC en asm
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 1413
Âge : 70
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#253 Message par F6FCO » mer. 31 oct. 2018 10:24

Bonjour tous,
Quelqu'un aurait une explication pour le pbm du post #250 ? (je n'ose pas parler de bug, c'est peut-être un souci de ma part, quoique MPlab m'a déjà fait sa part de surprises :sifflotte: )
Une porte nand prend 2 bits en entrée... la cochonne !!! :langue:

Soft de commande CNC en asm
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#254 Message par satinas » mer. 31 oct. 2018 11:26

Bonjour,
Il y a 2 choses différentes.
Ma réponse n'a rien à voir avec le bug dont tu parles qui n'en est pas un.
Premier problème, il faut mettre "movf translatZ,W"

Code : Tout sélectionner

Zplus
    clrf        tampon3
    movf        translatZ ; variable 8bits qui est chargé à 0x81 et qui va se décrémenter plus loin
    subwf    tampon3,w    ; tampon3-translatZ, ce qui revient à dire 0-0x81=0x7f,  résultat négatif et on peut sauter à plusz
    bn        plusz
    return


Pour ton second problème de variables, faut relire un peu le cours Bigonoff pour equ et cblock.
Je n'utilise que equ parce j'aime bien savoir en asm ou sont exactement mes variables.

Code : Tout sélectionner

limite_maxiZ equ d'30'

le variable limite_maxiZ est à l'adresse mémoire 30 = 0x01E

Code : Tout sélectionner

CBLOCK H'08'
  axeX:1
  coordX:4
  espace1
  axeY
  ...

la variable axeX est à l'adresse mémoire 0x008
la variable coordX(4) est à l'adresse mémoire 0x009
la variable espace1 est à l'adresse mémoire 0x00D
la variable axeY est à l'adresse mémoire 0x00E
la variable coordY(4) est à l'adresse mémoire 0x00F
la variable espace2 est à l'adresse mémoire 0x013
la variable axeZ est à l'adresse mémoire 0x0014
la variable coordZ(4) est à l'adresse mémoire 0x015
la variable retour_ligne1 est à l'adresse mémoire 0x019
la variable retour_ligne2 est à l'adresse mémoire 0x01A
la variable retour_ligne3 est à l'adresse mémoire 0x01B
la variable ptr_train_RCIF est à l'adresse mémoire 0x01C
la variable coordX_old(4) est à l'adresse mémoire 0x01D
la variable coordY_old(4) est à l'adresse mémoire 0x021
...

Donc limite_maxiZ tombe au milieu de la variable coordX_old (qui occupe 4 octets)

L'utilisation de equ ne se limite pas aux variables
LF equ d'10'
"movlw LF" met un line-feed dans W
var equ d'11'
"incf var" incrémente la variable var d'adresse 0x00B

Le nom de la colonne affichée dans File Registers, c'est "Symbol Name", pas 'Variable Name"

Soft de commande CNC en asm
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 1413
Âge : 70
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#255 Message par F6FCO » mer. 31 oct. 2018 16:24

D'accord,
Je pensais que çà voulait dire que limite_maxiZ était équivalent à la valeur d'10' et pas plus. Mais il y a alors une autre erreur car bien entendu avant de poser la question j'ai été vérifier si les autres equ avaient été placé en mémoire et non, d’où mon étonnement. Les autres équivalences limite_maxiX equ d'130', limite_miniX equ d'0', etc. n'apparaissaient pas dans la zone des variables.
Ce truc n'est donc toujours pas clair pour moi et j'ai tout remplacé par des #define, çà a réglé le problème.

Soft de commande CNC en asm
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2595
Enregistré en : juillet 2016
Localisation : Terre

#256 Message par Temps-x » jeu. 1 nov. 2018 11:53

Bonjour,

satinas a écrit :Source du message movf translatZ,W

+1 effectivement comme déjà expliqué, :sifflotte: W et F, même si ils font qu'une lettre sont très important.

satinas a écrit :Source du message Je n'utilise que equ parce j'aime bien savoir en asm ou sont exactement mes variables.

+2 exact

attention ne pas confondre adresse et valeur.

F6FCO a écrit :Source du message #define, çà a réglé le problème.


Pour l’instant, mais ça change rien car elle peuvent se placer ou elles veulent à tout moment, tant quelle son par déclaré par : EQU

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

Soft de commande CNC en asm
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 1413
Âge : 70
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#257 Message par F6FCO » jeu. 1 nov. 2018 15:23

Comment déclarer une constante alors ?
Remplacer une valeur constante par un nom qui sera plus facile à utiliser dans le programme et qu'on n'aura à changer qu'une fois si on veut la modifier ?
Une porte nand prend 2 bits en entrée... la cochonne !!! :langue:

Soft de commande CNC en asm
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#258 Message par satinas » jeu. 1 nov. 2018 15:47

Bonjour,
Les données constantes avec #define, en décimal ou hexa selon leur nature.
Les variables avec equ ou cblock, en hexa.
Pourquoi a tu besoin de cette fenêtre file registers pour savoir quelles sont tes variables ?
Si y a un bug dans l'affichage de cette fenêtre, on fait avec, on veut quand même une pièce à conviction :)
Je l'ai jamais utilisée cette fenêtre, le source, le hex, et un peu de debugger avec watch entre les 2.
Je suis revenu au debugger du pic, parce que l'Arduino, comment dire ...

Soft de commande CNC en asm
F6FCO
Avatar de l’utilisateur
Expert
Expert
Messages : 1413
Âge : 70
Enregistré en : décembre 2017
Localisation : Furtif je suis.
Contact :

#259 Message par F6FCO » jeu. 1 nov. 2018 16:38

Bonjour,
Pour debugger je trouve la fenetre file register aussi pratique si ce n'est plus que la fenetre watch.
Dans watch j'ai seulement d'affiché Wreg, Status et les ports au cas ou, dans file register j'ai toutes mes variables en visu et dans l'ordre, et comme dans ce projet elles occupent pas mal de place je peux voir ainsi si elles risquent d'écraser des variables système. Question d'organisation de l'espace de travail dans MPLab, les deux sont affichées et je sais tout de suite ou placer l'oeil pour avoir l'info, vu le nombre de variables si tout était affiché dans watch je ne m'en sortirai pas.

Comme déjà dit, la pièce à conviction au post 250.

J'ai un tiroir plein d'arduinos, pseudo-arduinos et atmegas328, je les garde précieusement pour le jour ou j'aurai un projet utilisant des calculs complexes genre fonctions trigonométriques, chose que je ne me vois pas faire en assembleur.
Ce qui m'étonne c'est que vu la popularité de l'arduino ils n'aient pas encore sorti une IDE plus performante niveau debbugage.
Une porte nand prend 2 bits en entrée... la cochonne !!! :langue:

Soft de commande CNC en asm
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#260 Message par satinas » jeu. 1 nov. 2018 16:51

Qu'est ce que tu n'as pas compris dans ce que j'ai écrit sur "limite_maxiZ" dans le post 254.

La pièce à conviction c'est pour ça :
Les autres équivalences limite_maxiX equ d'130', limite_miniX equ d'0', etc. n'apparaissaient pas dans la zone des variables.


Retourner vers « Langage ASM »

Qui est en ligne

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