Il est réconfortant
de savoir (dans le monde-foutoir technologique où nous nous débattons tant bien que mal)
que Microchip, lui, a été assez intelligent et prévoyant pour assurer la compatibilité de
toutes ses docs techniques — sauf au niveau des noms donnés aux PIC ! En voyant simplement
les codes 12Fxxx et 16Fxxx on ne peut pas savoir que ces deux PIC sont identiques en architecture
intérieure... ce qui est pourtant le cas. Nous en resterons pour quelques années encore
à des PIC dits MIDRANGE,
et nos 12F675 et 16F628 sont identiques à ce sujet.
  On
note donc évidemment la disparition des GPIO, GPO, GPIO0,
et cetera, au profit de PORTA et PORTB.
En revanche, remarquez qu´avec le 675, on pouvait s´adresser à une patte particulière grâce
à GP2 ou GPIO2 alors
qu´on ne peut pas, avec le 628, écrire directement Ra2
(ce devra être PORTA.2 ou l´utilisation d´un symbol).
  Très
important (et source de confusion au départ), le changement de TRISIO
qui devient TRISA (pour le PORTA)
et TRISB (pour le PORTB) :
réglage des ports en entrées ou en sorties.
  Personne
ne regrettera la disparition de cet enfoiré de registre ANSEL
qui, quand on l´oublie dès le début d´un programme pour 12F675, nous pourrit la vie pour
des heures (il est responsable à lui seul, cet ANSEL,
de milliers de mails sur Internet (“Au secours, mon 675 marche pas ! — T´as pensé
à ANSEL ? — Euh, non, je vais le faire, merciiiii...”).
  En
revanche, la ligne CMCON = 7 (comparateurs désactivés)
reste d´actualité si on veut utiliser les pattes Ra0
à Ra4 en mode logique.
  Enfin,
un autre flot de milliers d´appels au secours sur Internet concerne le calibrage fin du
675 (OSCAL et son étrange façon de s´automutiler...).
Eh ben, y en a plus maintenant avec le 628, ouf !
  Le
628 ne possède pas ANSEL, chouette avons-nous dit, mais
c´est parce qu´il ne sait pas assumer cette fonction analogique du 675 ! Un manque
qui devra être compensé par des petites magouilles dont sont coutumiers les utilisateurs
du vieux 16F84, et on en trouvera par poignées sur le web. (En bas de cette page, voir les
différences 16F84/16F628.)
  En
revanche le 628 possède, en intégré, sur sa patte Rb3,
une fonction PWM (ou MLI, modulation de largeur d´impulsion, ça sert à régler finement la
luminosité des leds ou la vitesse des moteurs) que le Basic gère d´ailleurs très facilement,
ce que nous devions simuler avec beaucoup de matière grise et de lignes de code pour le
675 qui ne sait pas faire ça tout seul.
  Je
crois avoir fini ce tour des différences 675/628, d´autres nous apparaîtront au fur et à
mesure, je les recopierai ici même quand elles se feront jour.
Pour
m´aider à repérer les fautes de frappe et autres dans le programme en Basic j´utilise
l´éditeur
de texte NotePad++, un outil gratuit qui permet le coloriage des mots réservés
des langages. Aussitôt j´ai donc écrit une mise à jour pour les mots-clés du 628,
et ainsi je ne peux même pas taper GPIO sans voir mon erreur en couleur... Il y
a actuellement quatre versions de ce colorieur (1 pour l´assembleur 675, 1 pour
l´assembleur 628, 1 pour le Basic 675, 1 pour le Basic 628), vous
pouvez les trouver ici sous le nom userDefineLang.xml |
|
|
|