Introduction à La Programmation de Microcontrôleurs PIC16F84 Sur Une Linuxette

  • Upload
    -

  • View
    220

  • Download
    0

Embed Size (px)

Citation preview

  • 7/25/2019 Introduction La Programmation de Microcontrleurs PIC16F84 Sur Une Linuxette

    1/12

    1/30/2016 Introduction la programmation de microcontrleurs PIC16F84 sur une Linuxette

    http://fribotte.free.fr/bdtech/piclinuxette/piclinuxette.html

    Un club de passionns en robotique participant la coupe de France E=M6.

    [Accueil] [Qui sommes-nous ?] [Robots] [Coupe e=m6] [BD Technique] [Forum] [Reportages] [Liens] [WiKiFri]

    Introduction "Fribotte"

    La lecture de cette superbe contribution de Jean-Marc LICHTLE, vous permettra de vous familliariser la programation d'unPIC16F84 sur une Linuxette, en utilisant juste quelques composants basiques (programmateur parallle).

    Vous pouvez tlcharger la version PDF de ce document ici.

    Cette tude est aussi disponible sur le site La(Linux entre amis), l'adresse suivante : http://lea-linux.org/pratique/pic.php3.

    Introduction

    Les microcontrleurs

    Les microcontrleurs envahissent notre environnement sans que nous le sachions. Ces petits composants se retrouvent de plus en plusdans tous les matriels que nous utilisons quotidiennement, machine laver, mulot (souris), ordinateur, tlviseur. Dots d'une logique

    programme ils sont capables de ragir l'environnement un peu la manire d'automates programmables. Mais leurs proprits ne selimitent pas offrir un certain nombre d'entres sorties logiques. Ils sont parfois dots de fonctions supplmentaires telles queconvertisseurs analogiques numriques, horloges temps rel, comptagerapide etc. L'intrt pour ces composants est directementfonction de leur prix. Sachez quevous pouvez, pour moins de 10 Euros, faire l'acquisition d'un c tout fait intressant.Plusieurs fondeurs se partagent ce march, citons INTEL, MOTOROLA, AMTEL, ZILOG, PHILIPS et enfin MICROCHIP qui nousintresse ici.

    Les microcontrleurs PIC16F84

    MICROCHIP est l'un des grands pour ce qui concerne la fourniture de c. La gamme des produits proposs se dcline en trois grandesgammes, le PIC16F84 tant l'un des reprsentant de la gamme moyenne. Le stockage des informations, essentiellement le programme,

    peut se faire de 3 manires, en ROM, EEPROM et mmoire flash. La technologie employe se reflte dans la dsignation ducomposant. Dans notre cas le F de PIC16F84 signifie flash. Vous trouverez couramment dans des appareils grand public des versions

    CR ce qui signifie ROM.Dans l'emploi et la mise en oeuvre de c il est important de prter attention aux niveaux lectriques. Les c de MICROCHIP utilisentdes niveaux TTL 0-5V. Il faut donc veiller lors de la ralisation d'un montage, ne jamais appliquer une tension suprieure aux pattesce qui dtruirait immdiatement le circuit. De mme les sorties ne peuvent dbiter plus de 20 mA. Attention donc aux courts-circuits!.Il y a toutefois une exception, lors de la programmation du composant l'une des pattes dsigne par MCLR pour ``master clear'' doittre porte un niveau compris entre 12V et 14 V.Vous trouverez sur Internet une masse de renseignements sur ces petites btes. Je rsumerais ici la ``data sheet'' du 16F84 en disantqu'il s'agit d'une puce 18 pattes programmable et dont les caractristiques essentielles sont les suivantes:

    Mmoire flash 1k mots de 14 bits68 octets de RAM pour le stockage des variables non rmanantes64 octets d'EEPROM ce qui permet de stocker des variables rmanantes, rglages, paramtrages etc..Architecture RISC (signifie jeu d'instruction rduit)13 ports E/SFrquence d'horloge 4 MHz pour les plus courants et jusqu' 20 MHz selon le modle

    Watjicechdog etc..

    Le PIC16F84 fait partie d'une trs grande famille de c produits par MICROCHIP et qui compte des dizaines de variantes diffrentes,certaines prsentant des particularits passionnantes, convertisseur A/N 8, 10 ou 12 bits, communication srie ou I2C etc.

    Objectif de la prsente tude

    L'objectif de la prsente est de dcrire les outils strictement ncessaires la programmation de c avec un PC tournant sous LINUX.

    L'approche classique

    Il est relativement simple de faire l'acquisition d'un ``starter kit'' chez l'un des revendeurs de MICROCHIP et de se lancer dans la

    programmation sous Windows (PIC START 272 Euros TTC, mini programmeur PIC01 59 Euros TTC1). Ce faisant vous allezcertainement arriver un rsultat rapide mais vous dpenserez aussi pas mal d'argent, ne serait-ce que pour la platine qui servira la

    http://lea-linux.org/pratique/pic.php3http://fribotte.free.fr/bdtech/piclinuxette/pic.pdfhttp://lea-linux.org/pratique/pic.php3?little=ok#foot45http://lea-linux.org/pratique/pic.php3http://fribotte.free.fr/bdtech/piclinuxette/pic.pdfmailto:[email protected]://www.wiki.free.fr/WiKiFri/http://fribotte.free.fr/liens/http://fribotte.free.fr/reportages/http://fribotte.free.fr/php3/forum/list.php3http://fribotte.free.fr/bdtech/http://fribotte.free.fr/coupe/http://fribotte.free.fr/robot/http://fribotte.free.fr/trombi/http://fribotte.free.fr/
  • 7/25/2019 Introduction La Programmation de Microcontrleurs PIC16F84 Sur Une Linuxette

    2/12

    1/30/2016 Introduction la programmation de microcontrleurs PIC16F84 sur une Linuxette

    http://fribotte.free.fr/bdtech/piclinuxette/piclinuxette.html 2

    programmation du PIC. De plus, sorti de l'univers douillet de Windows, vous ne serez pas tellement plus avanc.Par ailleurs cette mthode classique impose de dplacer le PIC du circuit d'utilisation au programmateur et retour chaque essai d'unenouvelle version du soft (et croyez-moi, au dbut on en fait des essais...). Consquence immdiate: il est vivement recommandd'utiliser des supports ZIF (force d'insertion nulle) pour monter les PIC ce qui sale encore la note pour le dbutant.

    L'approche propose

    J'ai donc choisi volontairement une approche totalement diffrente:

    Utilisation d'un PC sous LINUX. Dans mon application j'ai remis en service un vieux P75 qur lequel j'ai install une RED HAT7.0, pas vraiment le dernier cris mais une distribution solide et fiable et qui se contente sans gros problme d'un petit espacedisqueProgrammation directement sur la platine d'utilisation, sans dplacer le PIC du programmeur l'utilisation et retour. Ce conceptest parfois appell programmation in-situ, ICP ou ICSP pour les anglophones (pour In Circuit Programming ou In Circuit SerialProgramming)Circuiterie utilisant le strict minimum de composants selon un principe trs largement dcrit par David TAIT, ``Quick and dirty''qui signifie rapide et sale! Accessoirement l'investissemment restera trs faible.

    Je n'ai donc aucune tape choisi la facilit. Mais le rsultat justifie largement les choix initiaux. Une fois passe la phased'apprentissage et d'essais vous serez en mesure de concevoir des circuits de commande efficaces base de c dont vous pourrezmodifier la programmation sur place, sans toucher aux composants et avec n'importe quel PC, qu'il s'agisse de votre chre Linuxettemais aussi de n'importe quelle trapanelle tournant sous Windows ou DOS! Le logiciel de transfert de donnes existe en effet pourtoutes ces plateformes, dans des versions certes lgrement diffrentes mais relativement compatibles. Pour ce qui est de l'assembleur

    je n'ai pas vrifi si on le trouvait pour DOS. En cas de besoin les aficionados de Bill Gates devront donc se rabattre sur Windows!

    Les limitations

    Inutile de faire croire que tout est possible et que, moyennant quelques astuces, il devient possible de faire aussi bien et aussiconfortable qu'avec un starter kit. Une telle affirmation serait une tromperie. Le dispositif propos permet simplement d'assembler un

    programme et de le transfrer dans le PIC. Il ne peut pas:

    Lire le programme contenu dans le PIC, par exemple pour vrifier que le transfert a t fait correctementAssister l'utilisateur lors du dbogage en lisant la valeur des variables, compteurs etc.Transfrer des paramtres de rglage sous forme de valeurs enregistres dans la zone EEPROM

    Vous serez donc seul face la bte, sans la moindre aide si celle-ci ne veut pas faire ce que vous voulez!Ces limitations n'enlvent toutefois rien la validit du concept qui est de proposer le systme mininaliste qui permette de dbuteret/ou de se dpanner si d'aventure on se trouve un jour confront un problme de PIC sans avoir sous la main le matriel qui va bien.

    Notes

    ... TTC1

    Les prix indiqus sont ceux du catalogue 2002-2003 de GO-TRONIC

    Le circuit

    http://lea-linux.org/pratique/pic.php3?little=ok#tex2html1
  • 7/25/2019 Introduction La Programmation de Microcontrleurs PIC16F84 Sur Une Linuxette

    3/12

    1/30/2016 Introduction la programmation de microcontrleurs PIC16F84 sur une Linuxette

    http://fribotte.free.fr/bdtech/piclinuxette/piclinuxette.html 3

    Figure 1:le circuit en configuration utilisation....

    Figure 2:le mme en configuration programmation.

    Vous constaterez aisment que le circuit est d'une simplicit biblique. Cette simplicit ne dispense toutefois pas de quelques commentaires.J'ai dessin deux variantes du schma, l'une relative la configuration utilise pour l'exploitation, l'autre pour la programmation. Vous jouerezutilement au jeu des erreurs pour trouver les diffrences.

    Quartz

    Pour fonctionner le PIC16F84 a besoin d'un quartz qui va lui permettre de dfinir une frquence d'horloge. Les 16F84 courants supportent une

  • 7/25/2019 Introduction La Programmation de Microcontrleurs PIC16F84 Sur Une Linuxette

    4/12

    1/30/2016 Introduction la programmation de microcontrleurs PIC16F84 sur une Linuxette

    http://fribotte.free.fr/bdtech/piclinuxette/piclinuxette.html 4

    frquence de 4MHz ce qui est dj une belle performance mais il existe des F1 qui roulent 20 MHz! Un conseil: il existe des quartz de 4.000 MHz et

    des quartz de 4.096 MHz. Pour ma part je prfre la deuxime frquence qui permet aprs une division judicieuse (4096=2 12) de faire un chronomtreou toute autre application ncessitant une base de temps.Le quartz est complt par deux condensateurs 22 pF raccords la masse.

    Alimentation

    Le circuit est aliment par un rgulateur 5V positif selon une disposition tout fait classique. Certains auteurs prconisent de monter un condensateurde 0.1 F cramique proximit immdiate de la broche VDD du circuit PIC16F84.Une branche de l'alimentation est raccorde la broche MCLR du circuit, broche qui commande le reset gnral lorsque sa tension tombe zro. Sur lcircuit tel que dessin cette broche est raccorde la tension d'alimentation via une rsistance de 1k dont nous verrons l'intrt dans un instant. Un stra

    permet de connecter et de dconnecter MCLR.

    Tension de programmation

    Pour programmer le circuit il est ncessaire de faire passer la tension de la broche MCLR 12V (12 14V suivant la data sheet). C'est lqu'interviennent les composants qui constituent la branche d'alimentation de MCLR. Compte tenu du fait que la programmation est une opration qui nncessite que quelques secondes j'ai choisi de fournir cette tension en insrant une pile 9V la place du strap qui est figur en haut du schma. Cefaisant la tension totale disponible passe 14V, tension rduite ensuite l'entre de MCLR par la combinaison rsistance 1k et zener 12V. C'est simpleet trs rapide mettre en oeuvre.

    Pour mettre le circuit en marche normale mettre le strap comme figur sur le dessin du circuit en configuration utilisationPour provoquer un reset retirer le strap, la rsistance de 100 k monte en parallle avec la zener tire alors le potentiel de MCLR vers la massePour monter la tension de programmation remplacer le strap par une pile 9V, le + tant dirig vers MCLR

    Les barrettes scables contacts tulipe sont d'excellentes embases de straps. Avec un petit anneau de thermortractable de couleur on donne une petite

    touche professionnelle qui dmontrera quel point le travail a t bien pens....

    Circuit de programmation

    Le PIC16F84 se programme en appliquant un signal d'horloge sur la broche RB6 et les informations binaires srialises sur la broche RB7. Chacunedes informations qui transite sur la broche 7 est valide la retombe du signal d'horloge sur la broche 6. Les niveaux lectriques tant des niveauxTTL le plus simple est donc d'employer le port parallle pour fournir les niveaux lectriques souhaits. Le logiciel que nous utiliserons plus loin fournil'horloge sur la broche 3 du connecteur DB25 et les informations sur la broche 2. Des rsistances de 1k qui pourront tre montes directement dans lecapot du connecteur, limitent le courant en cas de fausse manoeuvre, court-circuit ou autre alas. L aussi les manchons thermortractables seront d'ungrand secours pour isoler tout ce petit monde. Le port parallle d'un PC est un composant qui ne supporte absolument pas de fournir un courant de plude 20 mA. C'est le motif pour lequel je choisis de le protger au plus prs, directement dans le connecteur. Attention: Vous pourriez tre tents d'utilisedes liaisons trs longues pour vous simplifier l'existence. Gardez vous en bien. Il vaut bien mieux acheter un cordon type rallonge de cordond'imprimante (DB25/DB25) lequel sera correctement blind plutt que d'allonger les fils de raccordements terminaux. Autre possibilit: Utiliser unconnecteur Centronics femelle qui se branchera directement sur un cordon d'imprimante. Plus difficile trouver mon avis, par ailleurs il vous faudra

    vrifier les numros de broches, les valeurs que je donne sont relatives des connecteurs DB25. L aussi les supports tulipes feront d'excellentsconnecteurs pour le circuit de programmation.

    Utilisation des broches RB6 et RB7

    Ces broches sont utilises pour la programmation du circuit. Cel ne signifie toutefois pas qu'elles soient inutilisables par la suite, une fois leprogramme en place. La seule contrainte est que ces broches doivent tre libres de potentiel au moment de la programmation ce qui signifie qu'elledoivent tre spares du circuit d'application. L aussi des supports tulipes coups dans des barettes scables et des straps permettent de raliser moindre frais une connexion pour la programmation ou une connexion pour l'utilisation.

    La branche de test

    Tout a est bien beau mais quoi cel va-t-il servir me direz vous? Et bien pour un premier essai nous pourrons nous contenter d'un objectif humblemais tellement utile, faire clignoter une LED. Cette LED sera simplement connecte la broche 2 du circuit (RA3), le courant dbit sera limit par unrsistance de 1k monte en srie (dcidment on consomme beaucoup de 1k dans cette application!).

    Notre premier programme

    Utilitaire d'assemblage

    Le PIC16F84 peut se programmer dans divers languages mais la langue de base, celle qui est la plus performante, est l'assembleur. Ils'agit d'un language trs proche du langue machine ce qui lui confre une efficacit ingale. Inconvnient, son utilisation va vousobliger penser comme un ordinateur ce qui n'est pas vident priori.La premire opration consiste donc trouver un assembleur qui tourne sous LINUX, celui qui est mis en ligne par MICROCHIP,MPASM, ne convenant l'vidence pas puisque tournant sous Windows! Vous pourrez trouver votre bonheur sur Internet, pour ma

    part je me suis arrt au choix d'un package nomm ``gputils''. Prsent au format .rpm il est trs simple a mettre en place. L'auteur degputils, James BOWMAN, prsente son produit comme devant, terme, reproduire toutes les fonctionnalits des logiciels deMICROCHIP. Pour l'instant le logiciel est en version alpha mais l'essentiel est prsent puisque le compilateur gpasm est oprationnel.Le paquetage gputils (version 0.10.3) comporte par ailleurs:

  • 7/25/2019 Introduction La Programmation de Microcontrleurs PIC16F84 Sur Une Linuxette

    5/12

    1/30/2016 Introduction la programmation de microcontrleurs PIC16F84 sur une Linuxette

    http://fribotte.free.fr/bdtech/piclinuxette/piclinuxette.html 5

    gpdasm, un desassembleur qui permet d'analyser du code compil si on en possde pas le sourcegpvc, un visualisateur de code

    Vous trouverez toute la documentation ncessaire sur les prestations offertes par gputils dans la documentation livre avec le paquetageet qui s'installe classiquement dans /usr/share/doc/gputils...Le paquetage gputils peut tre rcupr sur http://lealinux.org/_src/redir.php3?url=http%3a%2f%2fwww.rpmfind.net. Une autre

    possibilit est de visiter http://lea-linux.org/_src/redir.php3?url=http%3a%2f%2fgputils.sourceforge.net.

    Notre premier code source

    Les lignes qui suivent contiennent le code source que nous allons utiliser pour notre premier essai. Comme expos ci-dessus le but que

    nous nous sommes fix est trs simple: Faire clignoter une LED alimente par la patte 2 du circuit. Le code est des plus simples, sacomprhension ne devrait pas poser de problme insurmontable pour un dbutant qui ferait l'effort d'tudier les rudiments du langageassembleur. Ce code peut se retrouver dans diverses variantes sur Internet, certaines n'allumant qu'une LED, d'autres ralisant unchenillard de 8 LED. La comparaison des codes sera une source d'informations trs intressantes.

    ;**************************************************************************; testled1.asm;; Ce code provoque un clignotement d'une led raccorde la broche 2 du PIC; Il est largement inspir d'une programme rdig par fpederse; Ma contribution a consist laguer tout ce qui n'est pas strictement; ncessaire et mettre des commentaires dans la langue de MOLIERE.; J'ai laiss de code des tempos de 10, 30 et 60 sec. de telle sorte ; permettre des essais des valeurs diffrentes afin de vrifier que les; transferts de programmes successifs se droulent normalement.;**************************************************************************

    LIST P=16F84;f=inhx8m

    _CP_OFF equ H'3FFF' ; Code protect hors service_PWRTE_ON equ H'3FFF' ; Power on timer en service_WDT_OFF equ H'3FFB' ; Watch dog timer hors service_XT_OSC equ H'3FFD' ; Crystal oscillator (quartz)

    __CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC; Combinaison des paramtres

    ;; Directives de configuration;

    count1 equ 0C ; Le premier compteurcount2 equ 0D ; Le secondportb equ 06 ; Registre de port Bporta equ 05 ; Registre du port Astatus equ 03 ; Le registre statusrp0 equ 05 ; Le bit 5 == slection page de mmoire

    trisa equ 85H ; Reg. de rglage en entre ou sortie; du port A

    ;; Programme;

    org 0 ; origineclrf porta ; met toutes les sorties du port A zrobsf status,rp0 ; sl. page mmoire 1 pour accs trisaclrf trisa ; reset trisa, port A est dfini en sortiebcf status,rp0 ; slection page mmoire 0

    ;; Code modifiable pour essais successifs;

    startbsf porta,3 ; Fixe 1 le bit 3 du port A > 5V sur broche 2

    call wait_sec_5 ; Tempo LED allumebcf porta,3 ; Fixe 0 le bit 3 du port A > 0V sur broche 2call wait_sec_5 ; Tempo LED teintegoto start ; Boucle sur tiquette start

    ;; Sous programmes de temporisation;

    wait_min ; tempo 1 min (non utilise ici)call wait_sec_30call wait_sec_30return

    wait_sec_30 ; tempo 30 sec (non utilise ici)call wait_sec_10call wait_sec_10call wait_sec_10return

    wait_sec_10 ; tempo 10 sec (non utilise ici)

    http://lea-linux.org/_src/redir.php3?url=http%3a%2f%2fgputils.sourceforge.nethttp://lea-linux.org/_src/redir.php3?url=http%3a%2f%2fwww.rpmfind.net
  • 7/25/2019 Introduction La Programmation de Microcontrleurs PIC16F84 Sur Une Linuxette

    6/12

    1/30/2016 Introduction la programmation de microcontrleurs PIC16F84 sur une Linuxette

    http://fribotte.free.fr/bdtech/piclinuxette/piclinuxette.html 6

    call wait_sec_5call wait_sec_5return

    wait_sec_5 ; tempo 5 seccall wait_seccall wait_seccall wait_seccall wait_seccall wait_secreturn

    wait_sec ; tempo 1 seccall wait1call wait1return

    wait1 ; 4 tempos lmentaire scall wait0call wait0call wait0call wait0return

    wait0 ; Boucles ralisant une tempo lmentairemovlw .200 ; Charge count1 avec valeur dcimale 200movwf count1

    d1 movlw .200 ; Charge count2 avec valeur dcimale 200movwf count2

    d2 decfsz count2,1 ; dcremente et saute ligne suiv. si zerogoto d2 ; si diffrent de zerodecfsz count1,1 ; dcremente count1 si count2 == zerogoto d1 ; boucle interne si count2 zeroreturn

    end

    Commentaires sur ce codeIndentations

    Le langage assembleur dicte certaines rgles, parmi celles-ci le respect d'un certain formalisme dans la mise en forme du code source:

    Les dclarations de variables sont cadres gauche (tous les xxx equ xxx)Les directives LIST ou __CONFIG sont prcdes d'un blanc, tabulation ou espaces(s)Les tiquettes sont cadres gaucheLes lignes de code sont, comme les directives CONFIG ou LIST, prcdes d'un blancLe cadrage des commentaires, prcds d'un est indiffrent

    La directive CONFIG

    J'ai laiss en entte les lignes qui dfinissent les paramtres combins par une fonction ET et qui dfinissent la configuration souhaite.

    Ces quelques lignes auraient aussi bien pu tre remplaces par une simple ligne __CONFIG H'3FF1'. La valeur hexa '3FF1'donne enbinaire 0011 1111 1111 0001. Vous vous reporterez utilement la documentation existante pour retrouver la signification desdiffrents bits, par exemple sur http://lealinux.org/_src/redir.php3?url=http%3a%2f%2fwww.sq1.com%2Fconfig.html

    En rsum, de droite gauche:

    bits 0 et 1: 01, utilisation d'un oscillateur XT c'est dire quartz jusqu' 4 MHzbit 2: 0, Watch dog timer dsactiv, le chien de garde qui surveille le temps de cycle ne sera donc pas activbit 3: 0, Power up timer activ, la mise sous tension il va s'couler une trs lgre tempo avant que la scrutation du programmedmarre

    bits 4 13: suite de 1, Code protect dsactiv

    Mnmoniques de configuration

    Dans le mme ordre d'ide j'ai laiss la liste dtaille des variables et mnmoniques. L'autre technique aurait t de faire appel une

    directive d'inclusion d'un fichier contenant toutes ces nmmoniques (et bien d'autres) avec leurs valeurs respectives. On aurait ainsitrouv la place de la liste une simple ligne:

    #include

    C'est videmment plus sobre, l'inconvnient est toutefois que dans la suite du code les diffrents appels des variables contenues dansle fichier inclus sont moins 'transparents'. Le dbutant aura du mal faire le lien entre l'appel une mnmonique et une de ses fameusesvariables incluses.

    L'entte du code source, initialisation du port A

    Encore une fois il ne saurait tre question de faire de ce document un cours sur l'assembleur appliqu la programmation des PIC.Vous pourrez utilement vous reporter ce sujet un document de fond ``La programmation des PICs'' de BIGONOFF, par exemple surhttp://lea-linux.org/_src/redir.php3?url=http%3a%2f%2fwww.abcelectronique.com%2Fbigonoff.

    Le travail ralis par le code d'entte est assez classique, on fixe l'origine du code dans la mmoire du PIC (peut-tre pas ncessaire

    http://lea-linux.org/_src/redir.php3?url=http%3a%2f%2fwww.abcelectronique.com%2Fbigonoffhttp://lea-linux.org/_src/redir.php3?url=http%3a%2f%2fwww.sq-1.com%2Fconfig.html
  • 7/25/2019 Introduction La Programmation de Microcontrleurs PIC16F84 Sur Une Linuxette

    7/12

    1/30/2016 Introduction la programmation de microcontrleurs PIC16F84 sur une Linuxette

    http://fribotte.free.fr/bdtech/piclinuxette/piclinuxette.html 7

    puisque 0 est l'adresse par dfaut), puis on fait un reset des sorties du port A, aprs quoi on dfini les 5 broches du port A comme autantde sorties (RA0 RA4). Cette manipulation ne peut se faire qu'en slectionnant la page 1 de la mmoire, le registre trisa n'tant pasaccessible depuis la page 0.

    Le corps du programme

    Le programme proprement parler n'est constitu que de 6 lignes, une tiquette qui servira boucler, 4 lignes qui affectentsuccessivement les valeurs 1 et 0 la pin 2 (RA3) du PIC en laissant passer une tempo entre chaque changement, aprs quoi la dernireligne reboucle sur l'tiquette dfinie plus haut. On ne peut plus simple donc.

    Les temporisations

    Vous n'aurez aucun mal dmonter le mcanisme des tempos de 60, 30, 10, 5 sec etc. Elle s'obtiennent par rptition d'une tempo debase repre par l'tiquette wait0.L'analyse de cette dernire est intressante. Les deux premires lignes qui suivent l'tiquette ne sont parcourues qu'une seule fois. Ellesinitialisent le compteur count1 200 (valeur dcimale ce qui explique la notation curieuse .200). Suivent deux boucles imbriques, la

    boucle externe d1 - goto d1 et la boucle interne d2 - goto d2. Le jeu consiste ici dcrmenter les compteurs et boucler gentiment tantque ceux-ci ne sont pas tombs zro. Le passage par zro du compteur interne (d2) dcrmente d1 d'une unit et rinitialise d2 200.La mise zro de d1 termine la temporisation. Les deux mcanismes sont bass sur des oprateurs decfsz, acronyme qui signifie, en

    bon franais, dcrmente la variable et saute si zro! En clair la variable nomme, ici count1 ou count2 est dcrmente, la nouvellevaleur est range dans la variable (d'ou le ,1). Si cette nouvelle variable est diffrente de zro on excute la ligne de code suivante,sinon on saute une ligne plus loin.La valeur de cette temporisation est assez facile dterminer si on garde prsent l'esprit que les lignes de code s'excutent raisond'une ligne par cycle d'horloge sauf pour les branchements qui en ncessitent deux. La boucle interne ncessite donc 3 cycles.Parcourue 200 fois elle consomme 600 cycles. Chaque boucle externe ncessite 5 cycles, plus les 600 cycles de la boucle interne, letout multipli par les 200 boucles parcourir. Il vient donc trs en gros 120000 cycles. Sur un pic raccord un quartz cadenc 4

    MHz la frquence interne est de 1 MHz (1/4). La tempo lmentaire sera acheve aprs 0.12 sec. Quatre tempos wait0 suivredureront donc environ 1/2 sec (wait1), deux wait1 dureront 1 sec etc...Deux remarques:Le calcul effectu ici est taill la hache. Si vous souhaitez dterminer avec prcision la dure de la tempo il faudra fignoler un peu(les boucles sont elles dcrites 200 ou 199 fois?). Pour ma part je garde un mauvais souvenir des problmes du genre nombre d'arbreset nombre d'intervals.La temporisation par boucles successives est une horreur puisqu'on consomme de la puissance pour faire passer le temps. Il existed'autres techniques bien plus judicieuses et qui utilisent, par exemple, le chien de garde. Vous n'aurez aucun mal trouver le sourced'un logiciel utilisant cette mthode, cherchez par exemple count.asm sur Internet.

    L'assemblage, utilisation de gpasm

    Le paquetage gputils fournit, comme nous l'avons vu brivement plus haut, le logiciel gpasm qui permet d'assembler le programme,

    c'est dire transformer le code source rdig en mnmoniques comprhensibles par un tre humain (entran!) en code machine.Comme d'habitude l'appel de gpasm avec l'extension -? ou -h provoque l'affichage d'un cran d'aide reproduit ci-dessous.

    Usage: gpasm [options] fileOptions: [defaults in brackets after descriptions]

    a FMT, hexforma t FMT Select hex file format. [inhx8m]c, case Case insensitive.D SYM=VAL, define SYM=VAL Define SYM with value VAL.e [ON|OFF], expand [ON|OFF] Macro expansion.h, help Show this usage message.I DIR, include DIR Specify include directory.L, forcelist Ignore nolist directives.l, listchips List supported processors.m, dump Memory dump.n, dos Use DOS newlines in hex file.o FILE, output FILE Alternate name of hex file.p PROC, processor PROC Select processor.q, quiet Quiet.

    r RADIX, radix RADIX Select radix. [hex]w [0|1|2], warning [0|1|2] Set message level. [0]v, version Show version.

    Reading header files from /usr/share/gputils/header

    Report bugs to:

    Compte tenu des dtails contenus dans le code source propos les diffrentes options proposes ne nous servent rien! Nous avons eneffet fix le type de processeur 16F84 et le format de sortie inhx8m par la directive LIST en dbut de code. Le format des nombresest hexa par dfaut. Il en dcoule la notation .200 qui apparat divers endroits pour forcer la lecture d'un nombre dcimal.L'assemblage se fera donc simplement par la ligne suivante:

    gpasm testled1.asm

    laquelle le compilateur va ragir par l'affichage suivant:

    http://lea-linux.org/_src/redir.php3?url=http%3a%2f%2fgputils.sourceforge.net
  • 7/25/2019 Introduction La Programmation de Microcontrleurs PIC16F84 Sur Une Linuxette

    8/12

    1/30/2016 Introduction la programmation de microcontrleurs PIC16F84 sur une Linuxette

    http://fribotte.free.fr/bdtech/piclinuxette/piclinuxette.html 8

    tl1.asm:42:Message [302] Register in operand not in bank 0.Ensure bank bits are correct.

    Pass le premier instant d'affolement (mais bon sang qu'est ce qui ne va pas dans ce source, jml raconterait-il des btises!?) vous vousrendrez compte que vous tes devant un simple message d'information et non une borde d'injure induite par une erreur d'assemblage.Ce message provient de la ligne 42, en clair celle qui efface les bits du registre trisa (clrf trisa). Gpasm vous demande simplement sivous tes certain d'avoir slectionn la bonne page mmoire, la page 1 qui permet l'accs au registre trisa. Notez que si vous voulezviter un rat cardiaque chaque assemblage vous pouvez slectionner un niveau de message moins sensible. A parir du niveau 1(gpasm -w 1 testled1.asm) l'assembleur considre avoir affaire un gourou et vite de l'incommoder avec des dtails mineurs! Dansquelques mois vous vous permettrez peut-tre mme le niveau 2. Souvenez vous simplement, arriv ce niveau, que vos premiers pasont t guids par un certain jml qui a trim seul pendant des semaines pour mettre au point ce document. Encore tout content du coupde main vous aurez peut tre envie de lui envoyer un petit mail sympa. N'hsitez pas, l'adresse est [email protected].

    Plus srieusement l'opration d'assemblage a cr un certain nombre de fichiers:

    testled1.hex, le fichier en code machine qui devra tre transfr dans le PICtestled1.cod, un fichier visualisable par gpvc et qui contient une masse d'informations sur le code assembl, sa taille, lesvariables etc.testled1.lst, un fichier texte qui tabli (entre autre) une correspondance entre les lignes de code source et leur traduction en hexa

    Je vous laisse juge de l'intrt de ces diffrents fichiers, nul doute qu'arrivs au niveau gourou vous saurez en faire un savant usage.Dans l'immdiat ce qui nous intresse est la prsence du fichier testled1.hex, confirmation que la compilation a donn un rsultat. Letout est de savoir si ce rsultat prsente un intrt, ce sera l'objet du chapitre suivant.

    Transfert vers le PIC, utilisation de pp

    Le transfert vers le PIC va tre ralis au moyen d'un logiciel trs rustique avec une interface en mode texte rpondant au joli nom de

    pp, pour PIC Programmer. L'auteur de ce produit est Chris WILSON. Vous trouverez facilement la dernire version du soft sous formed'archive tar sur Internet, par exemple l'adresse: http://lea-linux.org/_src/redir.php3?url=http%3a%2f%2fftp.unicamp.br%2Fpub%2Fsystems%2FLinux%2Fsystem%2Fnetwork%2Fisode.

    La dcompression de l'archive dans sa version actuelle cre un sous-rpertoire ./pp-0.6 dans lequel vous trouverez quelques fichiersdonc les incontournables README.1ST, README, mais aussi FILES.TXT qui donne la liste des fichiers reproduite en partie ci-dessous (et traduite):

    FILES.TXT, la liste des fichiersPP.TXT, une brve description du programmeur et des incidences sur le software, principalement les variables d'environnementPROGRAM.TXT, mode d'emploi du logiciel de transfertPP.PCX, le schma du programmeur PIC16X8X propos par Davis TAIT, une version complte assez proche d'un programmeurcommercial

    pp, le logiciel de programmation sous LINUX (et aussi PP.EXE pour les utilisateurs de Microsoft)SRC.ZIP, le code source en CQANDD.PCX, le schma du prgrammeur quick-and-dirty propos par David TAIT, dont je me suis inspir pour cet article

    QANDD.TXT, une brve description du programmeur quick-and-dirtyTEST.PCX, schma d'un circuit de test 4 diodesWALK.ASM, un code source pour raliser un chenillard, la temporisation est obtenue dans ce cas par un dbordement duwatchdogmypp, un fichier executable qui lance pp aprs avoir fix la valeur d'un certain nombre de variables d'environnement. A

    paramtrer selon votre propre configuration, par exemple si vous programmez avec le port lp1 au lieu de lp0. Attention, lanumrotation est de style Windows, le permier port a donc le numro 1 et non 0 comme avec LINUX

    Note: Les fichiers graphiques au format .PCX peuvent tre lus avec The Gimp....Cette liste est loin d'tre complte, je n'ai mentionn que les fichiers principaux. Les gourous trouverons aussi un Makefile et d'autresfriandises.Une autre possibilit pour se procurer pp est de rcuprer un fichier nomm linuxpp.zip. Celui peut tre tlcharg sur:http://www.thepicarchive.cwc.net/dtpa/links.html

    Il suffit alors de le copier dans le sous rpertoire qui vous sert vos essais de PIC et de suivre une procdure tout fait classique

    rsume ci-dessous (et dcrite dans Readme.now):

    [jml@jml linuxpp]$ unzip linuxpp.zipArchive: linuxpp.zip

    inflating: Readme.nowextracting: linuxsrc.zip

    inflating: mypp.sh[jml@jml linuxpp]$ unzip linuxsrc.zipArchive: linuxsrc.zip

    inflating: allpatchesinflating: Makefileinflating: config.hinflating: hex.cinflating: hex.hinflating: linux.cinflating: pp.cinflating: pphw.cinflating: pphw.h

    http://lea-linux.org/_src/redir.php3?url=http%3a%2f%2fftp.unicamp.br%2Fpub%2Fsystems%2FLinux%2Fsystem%2Fnetwork%2Fisode
  • 7/25/2019 Introduction La Programmation de Microcontrleurs PIC16F84 Sur Une Linuxette

    9/12

    1/30/2016 Introduction la programmation de microcontrleurs PIC16F84 sur une Linuxette

    http://fribotte.free.fr/bdtech/piclinuxette/piclinuxette.html 9

    inflating: timer.cinflating: timer.h

    [jml@jml linuxpp]$ makegcc g O2 DLINUX c o pp.o pp.cpp.c: In function `main':pp.c:356: warning: return type of `main' is not `int'gcc g O2 DLINUX c o hex.o hex.cgcc g O2 DLINUX c o timer.o timer.cgcc g O2 DLINUX c o pphw.o pphw.cgcc g O2 DLINUX c o linux.o linux.cgcc g O2 DLINUX pp.o hex.o timer.o pphw.o linux.o o pp[jml@jml linuxpp]$ lsallpatches hex.h linux.o Makefile pp.c pphw.o timer.cconfig.h hex.o linuxpp.zip mypp.sh pphw.c pp.o timer.h

    hex.c linux.c linuxsrc.zip pp pphw.h Readme.now timer.o

    Attention, la diffrence de la mthode prcdente le traitement de linuxpp.zip ne cre pas de sous rpertoire! Veillez ne pasprocder dans votre rpertoire personnel faute de quoi vous auriez du mal retrouver vos petits plus tard. La diffrence essentielleentre les deux mthodes rside dans le fait que le traitement de linuxpp.zip donne simplement l'executable sous Linux alors que lamthode prcdente vous permet de rcuprer aussi pp.exe, l'executable sous DOS (a peut servir.... si votre linuxette est occupe)

    La syntaxe de pp

    La syntaxe est assez simple. Pour effectuer le transfert du fichier testled1.hex il suffit de taper:

    ./pp n testled1.hex

    quoi pp va vous rpondre par:

    Programming hardware not found or is faulty

    PIC16F84 Programmer Version 0.6 Copyright (C) 19941998 David Tait.

    Insert PIC ... press any key to continue (^C to abort)

    Rpondant l'invitation qui vous est faite vous taperez alors sur la touche Entre (par ex.) ce qui aura pour effet de transfrer leprogramme souhait dans le PIC et d'afficher:

    Programming ...Setting config to X ...Finished in 2 secs

    L'appel pp via une syntaxe ./pp est li au fait que pp n'est pas, priori, dans un des sous-rpertoires dsign par la variabled'environnement PATH. Il s'en suit la ncessit de prciser dans quel rpertoire est rang le programme pp, ici le rpertoire courant.

    La dure du transfert est indicative. Elle va dpendre du volume du fichier. L'option -n est importante. Elle force en effet pp travailleren aveugle sans essayer de relire ce qu'il a transfr. Cette option est en fait obligatoire faute de quoi pp, se rendant compte que le

    programmeur n'est pas un modle classique, va se mettre automatiquement en mode debug.

    Premiers essais

    Crez deux versions du logiciel transfrer avec des diffrences sensibles dans les temporisations, 1+1s et 5+5s ou alors 1+5s et 5+1s.L'objectif est ici de charger l'une des versions puis, titre d'exercice, de charger l'autre en crasant la premire. Les explications deschapitres prcdents devraient vous permettre de crer facilement les deux variantes.J'ai fait d'innombrables essais, parfois avec des rsultats desesprants (le dsespoir c'est quand il ne se passe rien et que le doutes'installe: Le PIC est-il foutu? Ai-je fait une fausse manoeuvre?) Pour vous viter les affres de recherches identiques je vous donnedonc quelques tuyaux:

    L'alimentation qui dbouche sur le rgulateur 5 Volts peut rester branche en permanence. Inutile de chercher faire un reset encoupant cette alimentation, a ne sert rienDans la mesure ou vous n'utilisez pas les sorties RB6 et RB7 dans votre application, ce qui est le cas ici, vous pouvez laisser laconnexion avec le port parallle en place. La littrature MICROCHIP dit que le passage en mode programmation est obtenulorsque MCLR passe de 0 12V alors que RB6 et RB7 sont tous deux 0V. En fait, vous pourrez le vrifier, ces deux broches

    restent bien sagement 0 lorsque le logiciel pp est au repos, condition bien sr que PPSETUP soit configur correctement.

    Ds lors une cession courante pourrait se drouler comme suit:

    Mise sous tension, le PIC se met en marche avec le programme qu'il contient ou reste l'arrt s'il est vierge ou effacRetrait du strap qui maintient MCLR la tension d'alimentation, le PIC s'arrteMise en place de la pile 9V qui dlivre la tension de programmation, le PIC passe en mode programmationTransfert d'une nouvelle version du soft au moyen de pp en utilisant le syntaxe ci-dessusRetrait de la pile 9V et mise en place du strap. Entre ces deux tapes MCLR passe par 0 en provoquant un reset du PICVous devriez voir repartir le PIC sur son nouveau programme

    En respectant cette chonologie vous ne devriez pas avoir de problmes de transfert.

    Utilisation avance

  • 7/25/2019 Introduction La Programmation de Microcontrleurs PIC16F84 Sur Une Linuxette

    10/12

    1/30/2016 Introduction la programmation de microcontrleurs PIC16F84 sur une Linuxette

    http://fribotte.free.fr/bdtech/piclinuxette/piclinuxette.html 10

    ne aut pas se ment r, avec e ar ware m s en oeuvre n est gu re quest on e a re e ut sat on avanc e. out au p us peut-onenvisager d'effacer compltement le PIC en tapant ./pp -en. Ici aussi l'option ``n'' est ncessaire pour viter que pp passe en modedebug. L'effacement se place dans le cheminement dcrit ci-dessus la place de la ligne qui transfert le programme.Quelques conseils:

    Aprs un effacement il faut repasser par un mode normal (MCLR aliment 5V) avant de transfrer un nouveau programme. Lasuccession d'une commande effacement et d'une commande transfert ne semble pas donner le rsultat qu'on pourrait tre en droitd'attendreDans le mme ordre d'ide une syntaxe du style ./pp -en testled1.hex qui tenterait dans la mme action d'effacer et dereprogrammer le PIC semble voue l'chec, du moins avec le hardware rustique que nous employons.Aspect intressant: on peut reprogrammer en crasant une ancienne version sans passer par une phase inermdiaire d'effacement.Un effacement peut servir vrifier que le dialogue PIC / logiciel se droule normalement. Il suffit ensuite de charger un

    programme rel.

    Une aide lmentaire sur pp peut tre obtenue avec la syntaxe classique ./pp -?. Attention, mme pour vous livrer quelques lignesd'aide pp exige que vous soyez administratur sur votre machine!

    [root@jml pp0.6]# ./pp ?PIC16F84 Programmer Version 0.6 Copyright (C) 19941998 David Tait.

    Usage: pp [ lxhrwpcdevgosn! ] hexfile

    Config: l = LP, x = XT, h = HS, r = RCw = WDTE, p = PWRTE, c = code protect

    Others: d = dump, e = erase, v = verify, g = goo = old, s = silent, n = no read, ! = no wait

    Defaults: RC, /WDTE, /PWRTE, unprotected,no erase, stop, new, verbose, read, wait

    Bug reports to [email protected] hardware not found or is faulty[root@jml pp0.6]#

    Ici aussi vous avez la possibilit, comme lors de la mise en oeuvre de gpasm, de mettre en place les paramtres de configuration. Pourma part, comme expos ci-dessus, je prfre figer la config dans le code source. En pratique les seules options qui servent ( mon avis)avec notre mini-hardware sont les options dj vues plus haut, e pour erase ou n pour no read.Vous avez enfin la possibilit de lancer pp en mode debug. L aussi la maigreur du hardware mis en oeuvre ne nous conduira pas bienloin. Comme signal plus haut pp se met en mode debug si vous entrez une ligne sans prciser l'option -n. Il est donc trs rapided'accder cette fonctionnalit. L'affichage obtenu est reproduit ci-dessous, les interlignes correspondent des frappes de la toucheEntre qui permet de passer l'tape suivante. Le mode debug vous permettra au minimum de vrifier la continuit de la liaison PC enfaisant monter successivement les broches RB6 et RB7 du PIC.

    [root@jml pp0.6]# ./ppProgramming hardware not found or is faultypp: Hardware not connectedProgramming hardware not found or is faultyHardware setup: 7406/4066 using LPT1 at 0378 (delay = 6)Debug mode entered ... (^C to exit)

    Remove PIC ...

    VPP off, VDD off, RB6 low, RB7 low (input OK) ...

    VPP on ...

    VDD on ...

    RB6 high ...

    RB7 high (input BAD) ...

    Start over ... (^C to exit)

    VPP off, VDD off, RB6 low, RB7 low (input OK) ...[root@jml pp0.6]#

    Et les utilisateurs de Windows?

    Je me suis laiss dire qu'il y avait des utilisateurs qui continuaient utiliser Windows. Qu'ils se rassurent, la prsente tude s'appliqueen principe aussi leur cas. Gpasm est crit de telle sorte tre compatible avec MPASM de MICROCHIP, logiciel qui tourne sousWindows. Cel signifie contrario que MPASM est compatible avec gpasm! MPASM peut tre facilement tlcharg sur Internet, parexemple sur le site de MICROCHIP.Comme je l'ai dj expos, la rcupration de pp sous forme d'archive .tar fournit aussi le fichier PP.EXE qui tourne sous DOS. Lagrande toile fournit par ailleurs de nombreuses possibilits de rcuprer ce fichier, par exemple sur

    http://www.vermontficks.org/picpgmr.htm

    Il semblerait, selon cette page, que les utilisateurs de W2k doivent s'attendre des soucis.... Dans le monde LINUX en tout cas j'aiessay avec MANDRAKE 8.2 et RED-HAT 7.0 avec le mme succs.

  • 7/25/2019 Introduction La Programmation de Microcontrleurs PIC16F84 Sur Une Linuxette

    11/12

    1/30/2016 Introduction la programmation de microcontrleurs PIC16F84 sur une Linuxette

    http://fribotte.free.fr/bdtech/piclinuxette/piclinuxette.html 1

    Il ne devrait donc y avoir aucune difficult majeure pour les ventuels utilisateurs de Windows exploiter les informations consignesici, encore que je ne puisse nullement vous assurer d'un fonctionnement correct (Je ne travaille que sous LINUX).

    Conclusions

    Un mot d'encouragement

    On peut lire ici et l que le port parallle d'un PC est un organe fragile, que sa destruction entrane un dommage irrparable, surtout s'ilest intgr la carte mre. Bon, c'est juste mais en respectant quelques principes exposs plus haut, en particulier le montage desrsistances dans le capot du connecteur je ne vois pas quel scnario pourrait conduire la destruction de ce composant. Par ailleurs, sivous voulez vraiment faire preuve de prudence utilisez donc deux piles de 9V, l'une pour la tension de programmation, l'autre pour

    alimenter le rgulateur 5V. De la sorte votre montage est totalement isol du reste du monde et la masse est impose par le portparallle.Concernant la rsistance du PIC je peux simplement vous indiquer que le seul PIC que j'ai achet m'a servi pour tous les essais etcontinue clignoter gaiement cot de mon PC.J'ai essay d'tre trs complet dans mon expos. Cel conduit un pav de plus de 20 pages en version imprime. J'espre que levolume ne rebutera personne. Par contre le lecteur devrait trouver ici, du moins c'est mon espoir, tout ce dont il a besoin pour un

    premier essai.

    Et maintenant?

    Arriv ce stade se pose la question de savoir quelle suite donner ce travail. Chacun fera comme bon lui semble.

    Simplifier encore?

    On pourra par exemple essayer de simplifier encore, peut-tre supprimer la zener 12V et les resistances associes et laisser monter latension de programmation 14V (5+9). Pour ma part je n'ai pas essay. J'ai russi conduire tous mes essais avec un seul PIC qui vacontinuer me rendre des services dans les prochains temps, je ne souhaite pas faire cet essai au risque de dpasser de quelquesdcimales ce que peut supporter MCLR.

    Et les autres PIC's?

    Une autre voie serait d'explorer la possibilit de programmer d'autres PIC, par exmple de PIC16F877 2. Je viens de parcourir la datasheet, c'est simplement Bysance, 8k de RAM flash (mots de 14 bits), 256 octets d'EEPROM, 6 entres/sorties analogiques 10 bits etc.le tout dans un boitier 40 pattes, donc avec des E/S logiques foison!

    Acheter un ``vrai'' programmeur

    J'ai remarqu lors de mes surfs que les logiciels de programmation qui tournent sous LINUX utilisent gnralement le port parallle. Jene saurais donc trop recommander, dans l'hypothse ou vous voudriez par la suite faire l'achat d'un vrai programmeur, de tenir comptede cette ralit et de choisir un modle qui utilise ce port. Attention donc car la majorit des matriels proposs par les revendeursutilisent le port srie.

    Notes

    ... PIC16F8772

    16.20 chez GO-TRONIC, catalogue 2002-2003, www.gotronic.fr

    Remerciements

    J'ai la bonne habitude de remercier, mme si elles ne lisent pas ma langue, les personnes qui, grace aux informations qu'elles ont mis enplace sur Internet, on permis que, partant de mes connaissances d'lectroniques des annes 70 et alors que je n'avais jamais entenduparler au pralable de microcontrleurs, j'arrive en moins de 3 mois mettre au point cet article.Je distinguerais tout spcialement:

    BIGONOFF, cit plus haut et dont le cours de PIC est, mon avis, une rfrence dans le domaineDavid TAIT, lui aussi cit plus haut et qui a beaucoup publi sur le thme du hardware ``rapide et sale''Chris WILSON, l'auteur de pp (co-auteur avec David TAIT?)

    L'auteur

    Jean-Marc LICHTLE, Ingnieur Arts et mtiers, promotion CH73.A l'poque la RAM tait constitue de rseaux de tores magntiques, un par bit, traverss chacun de trois fils qui permettaient les

    http://lea-linux.org/pratique/pic.php3?little=ok#tex2html4http://lea-linux.org/pratique/pic.php3?little=ok#foot191
  • 7/25/2019 Introduction La Programmation de Microcontrleurs PIC16F84 Sur Une Linuxette

    12/12

    1/30/2016 Introduction la programmation de microcontrleurs PIC16F84 sur une Linuxette

    oprations de lecture et d'criture. L'expression ``1 kilo de RAM'' avait alors une signification peut-tre diffrente de celle qu'elle aactuellement! Il fallait le volume d'une machine laver pour ranger quelques kilos de mmoire sur un IBM 1130.Les commentaires sur ce travail peuvent m'tre adresss l'adresse suivante: jeanmarc lichtle chez gadz org

    jml

    propos de ce document...

    Introduction la programmation de microcontrleurs PIC16F84 sur une Linuxette

    Le code source de ce document a t rdig au format LaTeX. Pour tout renseignement sur ce format et son utilisation se reporter un

    article du mme auteur diffus sur lea-linux.org.Il a ensuite t export au format .html avec la commande qui va bien, voir ci-dessous.

    This document was generated using the LaTeX2HTMLtranslator Version 2K.1beta (1.62)

    the generated HTML was then debugged by Jice and Fred. Some unuseful pictures were replaced by their ascii/html equivalent orreduced to match a more comfortable screen width. Many Links where added by hand to make this document more comfortable to use.-) Pourrait pas parler franais Latex ?

    Copyright 1993, 1994, 1995, 1996,Nikos Drakos, Computer Based Learning Unit, University of Leeds.Copyright 1997, 1998, 1999, Ross Moore, Mathematics Department, Macquarie University, Sydney.

    The command line arguments were:latex2htmlpic.tex split 0

    The translation was initiated by jml on 2002-11-03

    jml 2002-11-03

    Compltez cette page, posez vos questions et remarques ici : WiKiFri

    Page http://fribotte.free.fr/bdtech/piclinuxette/piclinuxette.htmlmodifie le 02/12/2002.Copyright [email protected], libre de droit pour toute utilisation non commerciale.Reproduction autorise par simple mail

    mailto:[email protected]?Subject=Introduction%20%C3%A0%20la%20programmation%20de%20microcontr%C3%B4leurs%20PIC16F84%20sur%20une%20Linuxettehttp://fribotte.free.fr/bdtech/piclinuxette/piclinuxette.htmlhttp://www.wiki.free.fr/WiKiFri/index.php?edit=Fiche%20Fribotte%20bdtech%20piclinuxette%20piclinuxettehttp://lea-linux.org/_src/redir.php3?url=http%3a%2f%2fwww.maths.mq.edu.au%2F%7Eross%2Fhttp://lea-linux.org/_src/redir.php3?url=http%3a%2f%2fcbl.leeds.ac.uk%2Fnikos%2Fpersonal.htmlhttp://lea-linux.org/_src/redir.php3?url=http%3a%2f%2fwww.latex2html.org%2Fmailto:jean-marc%20lichtle%20chez%20gadz%20org