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

PIC24FJ128GC006
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#31 Message par satinas » lun. 15 janv. 2024 20:29

Bonsoir Temps-x,

Très bien ta carte, bravo, te loupe pas sur la soudure :-)
Quelques infos pour ton soft.

Les instructions PIC24 se servent des 16 registres 16 bits W0 à W15.
On met # devant les données pour distinguer adresses et données.

Code : Tout sélectionner

  mov #29,W1          -> mettre 29 dans le registre W1.
  mov 29,W1           -> copier le contenu de l'adresse 29 vers le registre W1.
  sub W2,W3,W4        -> soustraire W3 à W2, placer le résultat dans W4 (W2-W3=W4).
  sub.b W2,W3,W4      -> soustraire en mode byte W3 à W2, placer le résultat dans W4 (W2-W3=W4).

Pour l'adressage indirect, les 16 registres peuvent contenir des adresses et ainsi jouer le rôle des FSR 8 bits. Là on peut voir que c'est très puissant.

Code : Tout sélectionner

  add   W2,[W3],[W4++]   -> ajouter word d'adresse W3 au registre W2,
                            résultat placé à l'adresse W4, ajouter 2 à W4.
  add.b W2,[W3--],[W4++] -> ajouter byte d'adresse W3 à l'octet bas du registre W2,
                            byte résultant placé à l'adresse W4, enlever 1 à W3 et ajouter 1 à W4.

Je me suis amusé à convertir le jeu d'instructions 8 bits vers l'équivalent en 16 bits, c'est quand même très proche.

Code : Tout sélectionner

  WREG  -> W0
  Ws,Wd -> W0 à W15 (utilisables en mode word 16 bits ou byte 8 bits)
  ff    -> ram 0 à 65535 (all ram, accès direct en mode word aligné sur adresse paire,
                                   accès indirect en mode byte ou word aligné)
  f     -> ram 0 à 8191  (near ram, permet en plus l'accès direct en mode byte)
  .b    -> suffixe pour opération en mode byte
  .     -> instructions PIC16

  instructions PIC18      ->  instructions PIC24

  bcf bsf btg             ->  bclr bset btg
  btfsc btfss             ->  btsc btss
  bc bz bn bov            ->  bra
  bnc bnz bnn bnov        ->  bra
  rlncf rrncf rlcf rrcf   ->  rlnc rrnc rlc rrc
  incf decf               ->  inc dec
  andwf iorwf xorwf       ->  and ior xor
  andlw iorlw xorlw       ->  and ior xor
  addwf addwfc            ->  add addc
  subwf subwfb subfwb     ->  sub subb subbr
  addlw sublw             ->  add sub

. nop                     ->  nop
  reset                   ->  reset
. clrwdt                  ->  clrwdt
. sleep                   ->  pwrsav #0
. movwf  f                ->  mov  (.b) WREG,f                    mov Ws,ff
. movf   f,w    movf  f   ->  mov  (.b) f,WREG    mov  (.b) f     mov ff,Wd
. andwf  f,w    andwf f   ->  and  (.b) f,WREG    and  (.b) f
. addwf  f,w    addwf f   ->  add  (.b) f,WREG    add  (.b) f
. subwf  f,w    subwf f   ->  sub  (.b) f,WREG    sub  (.b) f
. incf   f,w    incf  f   ->  inc  (.b) f,WREG    inc  (.b) f
  rlncf  f,w    rlncf f   ->  rlnc (.b) f,WREG    rlnc (.b) f
. rlcf   f,w    rlcf  f   ->  rlc  (.b) f,WREG    rlc  (.b) f
. comf   f,w    comf  f   ->  com  (.b) f,WREG    com  (.b) f
  negf   f                ->  neg  (.b) f,WREG    neg  (.b) f
  mulwf  f                ->  mul  (.b) f
. clrf   f                ->  clr  (.b) f
  setf   f                ->  setm (.b) f
  daw                     ->  daw.b Wd
. swapf  f,w    swapf f   ->  swap (.b) Wd
. movlw  d8               ->  mov  (.b) #d16,Wd
. andlw  d8               ->  and  (.b) #d10,Wd
. addlw  d8               ->  add  (.b) #d10,Wd
. sublw  d8               ->  sub  (.b) #d10,Wd (sub fait la soustraction inverse de sublw)
  mullw  u8               ->  mul.uu Ws,#u5,Wd    mul.uu Ws,Wk,Wd
. bcf    f,u3             ->  bclr (.b) f,#u4
. btfsc  f,u3             ->  btsc (.b) f,#u4
  bc     s8               ->  bra   c,s16  (c z n ov nc nz nn nov ltu leu gtu geu lt le gt ge)
  bra    s11              ->  bra   s16
  rcall  s11              ->  rcall s16
. call   u20              ->  call  u23
. goto   u20              ->  goto  u23
. retfie                  ->  retfie
. return                  ->  return
. retlw  u8               ->  retlw #d10,Wd

. incfsz f,w    incfsnz f ->  voir inc,btss,btsc
  decfsz f,w    decfsnz f ->  voir dec,btss,btsc
  cpfseq f                ->  voir cp,btss
  cpfsgt f      cpfsltf f ->  voir cp,btss,btsc
  tstfsz f                ->  voir mov,btss
  tblrd* tblwt*           ->  voir PSV ou tblrd,tblwt
  movff  f,fd             ->  voir mov [Ws],[Wd] ou mov ff,Wd puis mov Wd,ff
 

PIC24FJ128GC006
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2623
Enregistré en : juillet 2016
Localisation : Terre

#32 Message par Temps-x » lun. 15 janv. 2024 21:48

Bonsoir satinas,

satinas a écrit :Source du message te loupe pas sur la soudure :-)

:roll: Avec le binoculaire sa devrait faire... enfin j'espère

satinas a écrit :Source du message Quelques infos pour ton soft.

Un grand Merci ! pour toutes ses informations, qui vont me servir, faut que j'arrive à me les rentrer dans ma petite tête :-D

Mais pour l'instant place à la soudure....

J'ai fait une gestion USB pour ce Pic, pour usart...

Coté alimentation, on peut l'alimenté en 5 volts ou par usb car j'ai mi un régulateur 3.3 volts. ou utilisé le programmateur Pickit3 pour alimentation du montage

D'après ce que j'ai lu, le pickit3 ajuste l'alimenttion au moment de l'utilisation, ce qui fait quand ne peut pas dépassé 3.3 volts pour utilisation.

Il faut bien sur entrée le pic quand utilise pour que cela sois possible, avec la nouvelle version de PICkitminus Standalone mon pic figure dans la liste, ce qui n'était pas le cas dans l'ancinne version de PICkitminus Standalone



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

PIC24FJ128GC006
satinas
Expert
Expert
Messages : 1225
Enregistré en : novembre 2015

#33 Message par satinas » dim. 21 janv. 2024 11:07

Bonjour,
satinas a écrit :Source du message mov 29,W1 -> copier le contenu de l'adresse 29 vers le registre W1.

Belle erreur, en 16 bits on ne peut accéder que sur adresse paire, la RAM étant constituée de mots 16 bits.
Comme la flash, les mots sont stockés en little endian, c'est à dire octet de poids faible en premier.

Code : Tout sélectionner

   mov   28,W1           ; accès direct 16 bits sur adresse paire vers W1
   mov.b 28,WREG         ; accès direct 8 bits vers octet de poids faible de W0, octet de poids fort inchangé
   mov.b 29,WREG         ; accès direct 8 bits vers octet de poids faible de W0, octet de poids fort inchangé

PIC24FJ128GC006
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2623
Enregistré en : juillet 2016
Localisation : Terre

#34 Message par Temps-x » dim. 21 janv. 2024 22:01

Bonsoir satinas,

Tu vas plus vite que moi, mais l'information est bonne à prendre, :roll: et pour un 16 bits c'est un peu normal. :-D

Petite info sur le PCB que j'ai fait, :roll: et ben ....je suis obligé de recommencer mon PCB, le fer à soudé à décollé les pistes, car la plaque que j'ai pris était de très mauvaise qualité, (bakelite)

La bakelite n'est pas une bonne option pour les circuits de precision , elle est flexible et tient mal à la chaleur, du coup j'ai commandé sur Aliexpress de la fibre de verre en qualité FR4 pour réalisé de nouveau mon PCB :cry:

Par contre on peut utilser la bakelite pour faire des PCB en grosses pistes, mais il faut quand même y aller mollo sur la tempèrature du fer à souder.

J'attends l'arrivé des plaques de fibre de verre en qualité FR4, livraison en 10 jours d'après Aliexpress.

Pour l'instant, j'installe un éclairage sur mon binoculaire, j'ouvrirai un post sur ce petit projet au cas ou des personne voudrais faire la même chose.

Merci ! pour le retour satinas

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

PIC24FJ128GC006
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2623
Enregistré en : juillet 2016
Localisation : Terre

#35 Message par Temps-x » ven. 26 janv. 2024 20:47

Bonsoir tous le forum,

J'ai reçu mes plaques de PCB en fibre de verre en qualité FR4 en moins de 7 jours :eek: chapeau à Aliexpress.

Super bonne qualité, du solide comme plaque, dimension 150x200 mm, quantité 20 plaques pour avoir le port gratuit, total payé 16.53 Euros, j'en ai à vie. :-D

Reste à trouver de la perchlorure de fer à bas prix, sur ce lien ICI j'en ai trouvé à 26,28 Euros les 5 litres.

Je vais voir si il n'y a pas d'autre solution que d'utiliser le perchlorure de fer


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

PIC24FJ128GC006
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1664
Âge : 65
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#36 Message par Gérard » ven. 26 janv. 2024 21:48

Bonjour à tous,

Ce n'est pas gravé?
C'est quel site Ali où tu as acheté?
Le 18/04/19 je suis devenu papy de jumeaux, le 01/09/23 une petite cousine des jumeaux est née.

PIC24FJ128GC006
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2623
Enregistré en : juillet 2016
Localisation : Terre

#37 Message par Temps-x » ven. 26 janv. 2024 23:56

Bonsoir Gérard,

Gérard a écrit :Source du message Ce n'est pas gravé?

Voir post #34

Gérard a écrit :Source du message C'est quel site Ali où tu as acheté?

Exacte j'aurais du mettre le lien marchant, le voici

1 commande est égal à 10 plaques de PCB pour 8.37 euros, il faut 20 plaques de PCB pour avoir le port gratuit (2 fois 8.37 euros)

Il faut arriver à 10 euros pour un port gratuit, après rien n'embêche d'aller prendre dans sa boutique un composant d'une valeur de 1.63 euro

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

PIC24FJ128GC006
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1664
Âge : 65
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#38 Message par Gérard » sam. 27 janv. 2024 20:09

OK, je viens de comprendre, tu achètes les plaques et tu graves chez toi.
Le 18/04/19 je suis devenu papy de jumeaux, le 01/09/23 une petite cousine des jumeaux est née.

PIC24FJ128GC006
Temps-x
Avatar de l’utilisateur
Expert
Expert
Messages : 2623
Enregistré en : juillet 2016
Localisation : Terre

#39 Message par Temps-x » sam. 27 janv. 2024 21:30

Bonsoir Gérard,

Gérard a écrit :Source du message OK, je viens de comprendre, tu achètes les plaques et tu graves chez toi.


Ben ouais ..... :-D Regarde en post #1 tu comprendras :-D

Gérard comprends vite, mais il faut lui expliqué longtemps dehors!!

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

PIC24FJ128GC006
Gérard
Avatar de l’utilisateur
Expert
Expert
Messages : 1664
Âge : 65
Enregistré en : septembre 2015
Localisation : Alsace - Haut-Rhin

#40 Message par Gérard » dim. 28 janv. 2024 13:31

Temps-x a écrit :

Gérard comprends vite, mais il faut lui expliqué longtemps dehors!!


Tellement vrai.

:lol: :lol: :lol:

==> A+
Le 18/04/19 je suis devenu papy de jumeaux, le 01/09/23 une petite cousine des jumeaux est née.


Retourner vers « Langage ASM »

Qui est en ligne

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