Archives du mot-clé : Assembleur

Instructions PIC16 (Enhanced Mid-Range)

Les instructions propres à la famille 8-bit PIC® Microcontrollers /  Enhanced Mid-Range sont décrites dans le Tableau 1 dans lequel il est indiqué, lorsque cela est applicable, l’équivalent avec les instructions de la famille 8-bit PIC® Microcontrollers / Mid-range ainsi que la description et des notes relatives à cette instruction.

Cet article s’adresse à ceux qui souhaitent migrer vers cette famille car elle apporte beaucoup d’améliorations en terme de souplesse et de performance comme :

  • Une optimisation du code facilitant tout compilateur C et donc un humain qui écrit en assembleur.
  • Une sauvegarde automatique des registres fondamentaux lors d’une interruption matérielle et leur  restauration tout aussi automatique à l’exécution de l’instruction RETFIE. De plus, 16 niveaux sont autorisés dans la pile d’appel de sous-routines (au lieu de 8 pour la famille Mid-Range) associés à une détection Overflow et Underflow.
  • Une gestion « linéaire » lors de la recopie de données au moyen des 2 registres FSR0 et FSR1 (File Select Registers).

 

Notice

On regrettera simplement l’absence d’une instruction de comparaison sans affecter le registre W qui oblige à une gymnastique d’écriture du code comme décrite dans l’article Opérations arithmétiques des PIC16.

En savoir plus »

Hello World !

Comme il se doit, le premier programme proposé sur PIC24 est du type Hello World ! (pour électronicien) qui fait clignoter une Led à une fréquence de 1 Hertz avec un rapport cyclique variable suivant l’appui sur un bouton ou  au bout d’un certain temps de fonctionnement. La platine électronique utilisée est la Clé USB sur micro-contrôleur.

Le seul intérêt d’un tel programme est de tester et qualifier la chaîne de production depuis l’écriture du code assembleur, l’ajustement des bits de configuration du PIC24 jusqu’à la programmation du circuit  pic24fj64gb002 (cf. le projet Programmation pour PIC24).

En savoir plus »

Opérations arithmétiques des PIC16

Les opérations arithmétiques s’appuient principalement sur les 2 instructions add et sub déclinées dans leur mode litéral ou registre. Si add ne pose pas de problème particulier, sub quant a elle peut en dérouter plus d’un car elle opère sur l’opposé de W comme indiqué ci-après :

sublw 0xa              sublw   10            ; W = 10 – W
subwf 0x20, f          subwf   R_2_MAX_TX    ; R_2_MAX_TX = R_2_MAX_TX – W

En savoir plus »

Articles plus anciens «