View
222
Download
3
Category
Preview:
Citation preview
FormationEasyPICintroductionlapartielogicielle
LacarteEasyPIC4estfournieavecunensemblededeuxlogiciels:lecompilateurMikroCetleprogrammeurPICFlash,tousdeuxditsparMikroElektronika1.
1.Installation
1.1.GnralitsLinstallation,siellenesemblepasposerdeproblmesousWindowsXP,ncessiteparcontre
une procdure rigoureuse sous Windows 2000. Suite de nombreuses exprimentations et denombreuxproblmes, voici unemarche suivrequi nest certainement pas optimisemaisquifonctionnetouslescoups:
nepasconnecterlacarteEasyPIC4;lancer le fichier du CDROM2 fourni D:\zip\PICFlash_setup.exe (toutes les
optionspardfaut);connecterlacarteEasyPIC4Windowsreconnatlacarteetinstalleledriver3.Connecter
lacartesurtouslesportsUSBquiserontpotentiellementutiliss,unparun.Achaquefois,laDELorangeUSBLINKdoitsallumer;
installerlepackMikroCdisponiblesurleCD(outlchargdepuisl'Internetpouravoirladernireversion):
Do you want to install PICFLASH vxxx programmer ? Oui (installer en laissant tous les choix par dfaut, sauf celui d'acceptation de la licence) ; Do you want to install MikroC vxxx ? Oui (idem) ; Do you want to install LvPICFLASH vxxx programmer ? Non (sauf si vous prvoyez de travailler avec des dsPIC) ; Do you want to install PICFLASH drivers ? Non.
La procdure est maintenant termine.
1 http://www.mikroe.com;desforumstrsractifssontdisponiblesenbasdelapageInternet.2 RfrenceduCDROMtest:15102006(cetteprocdurenesappliquepasavecle080506).3 SilemessageDrivercouldnotbeinstalledapparat, cestquelacarteEasyPICatconnecteauparavant.
Danscecas:fermerlaprocduredinstallation;connecterlacarteEasyPIC;cliquer(droit)surlelogo;cliquersurDconnecteroujecterlematriel;cliquer(droit)surUSB18FFirmwarev1.20;cliquersurProprits;slectionnerlongletPilote;cliquersurDsinstaller;cliquersurOK;dconnecterlacarteEasyPIC;redmarrerlesystmeetretenterlinstallation.Note:hormisleredmarrage,cetteprocduredoittrefaitepourtouslesportsolacarteatconnecte!
prof.maquaire@free.fr~formationEasyPICdes4et13mars2008introductionaulogiciel080513.odt page1/10
La version de MikroC dont ilestquestioniciestla7.0.0.3;la8.1.0.0estcejourdisponibleetcette introduction est a priorivalablepourlesdeux.
1.2.UtilisationenrseauCesprogrammesontbesoindunaccsintgralleursrpertoiresdetravail.Unepersonne
ayantdesdroitslimitsdoitdonclancerleprogrammeentantquadministrateur(clicdroit,puisExcuterentantque...).Lorsdelutilisationavecleslves,cettemanipulationnestpasdespluspratiques...Notre(trsbon)ancienTSAR,CarpouronDidier,adveloppunscriptpourpalliercehandicap.
Ladmarchesuivrepourobtenirunfichierdelancementestlasuivante(avecpourexemplelelancementdeMikroC):
creravecunditeurdetexte,unfichierMIKROC.VBSetysaisirleslignessuivantes:Option explicitDim oShellset oShell= Wscript.CreateObject("WScript.Shell")oShell.Run "runas /noprofile /user:UUUUU ""CCCCC"""WScript.Sleep 100oShell.Sendkeys "PPPPP~"Wscript.Quitpauseremplacerlespartiessuivantes:
UUUUU nomdelutilisateurayantlesprivilgessuffisants(exemple:administrateur)
CCCCC chemincompletdeMikroC(exemple:C:\Program Files\Mikroelektronika\mikroC\mikroC.exe)
PPPPP motdepassequicorrespondlutilisateurUUUUUutiliser Script Encryptor de Microsoft (sous DOS) pour crypter le script avec la
commandesuivante:screnc MIKROE.VBS MIKROE.VBElefichierMIKROE.VBEatcr;ilestexcutablemaisillisible.
placerlefichierVBEquelquepartetcrersurlebureauunaliasverscefichier.associerventuellementcetaliaslicneduprogrammeoriginal.sousWindows2000,donnerlespouvoirsdemodification,pourlesutilisateursduposte,
surlerpertoireC:\ProgramFiles\Mikroelektronika\.
Attention!Ilfauttreconscientquecetteconfigurationentraneunaccsplusdlicatverslesrpertoiresutilisateurs.Ilestbondetravaillersurundisquelocal,doncdecopieraupralableslesressourcesncessairesetdetransfrersontravaillafindutempsimparti;uneclefUSBesticiunoutilsplusquutile...EnaccdantauxfichierviaToutlerseau,etc.,lelogicielnesemblepasproposer loption de compilation (erreur du type [...].mcl not found). A noter aussi quelimpressionenrseaunestplusdisponible.
prof.maquaire@free.fr~formationEasyPICdes4et13mars2008introductionaulogiciel080513.odt page2/10
2.MikroCMikroCestdotdunenvironnementtrsintuitifetbienorganis.Ilpermetessentiellementde
saisirducodeenCetdelecompiler.
2.1.EnvironnementLafentreprincipaleressemblelasuivante:
Enbasgauche,deuxonglets:
LongletProjectSetupdonneunaperudesrglagesdebase.
IlpermetaussidechoisirentreunecompilationclassiqueouavecdbuggageICD.
LongletProjectSummarypermetdevoirquelsfichierssontutilisset
gnrsparleprojet.Ilestimpratifdavoirlenomdufichiersource
danslabrancheCFiles.
prof.maquaire@free.fr~formationEasyPICdes4et13mars2008introductionaulogiciel080513.odt page3/10
Messagesdordregnral.
Quelquesoutilssontaussiproposs.
Rsumdesrglagesdebase.
Accsrapideunendroitspcifique
ducode.
Ongletprincipaldesaisieducodesource.
Agauche,troisonglets:
LongletCodeExplorerrpertorielensembledes
fonctionsetdesvariablesducode.
Ilpermetdesedplacerrapidementdanslesource.
LongletQHelpdonneunelistede(presque)
touteslesroutinesprdfinies.Undoubleclicsurlunedelles
ouvrelaidecorrespondante.Cestlongletleplusutile.
LongletKeyboarddonneunelistedes
raccourcisclavierutilisables.
2.2.NotiondeprojetMikroCest victime de la mode... il travaille par projet. Il y a clairement des avantages
(ouverture de fichiers multiples et compilation dun seul, par exemple), mais la dmarche decrationdemandedelarigueur.
Lorsdelacrationdunprojet(Project\NewProject...),lafentresuivanteapparat:
Remarque: il faut imprativement presser la touche Default! Cela permet dajuster la configurationdefonctionnementgnrale.Sicettetouchenestpaspresse,leprogrammefinal
prof.maquaire@free.fr~formationEasyPICdes4et13mars2008introductionaulogiciel080513.odt page4/10
Nommerleprojet.
ChoisirlePICcible.
Indiquerunchemindestockage.
Choisirlafrquenceduquartz.
Pressercette
touche!
Validerla
configurationparOK.
nefonctionnerapas.Ilestmaintenantpossibledesaisirlecodeduprogramme.
2.3.OrganisationducodeLorganisationgnraleconseillepourunprogrammeestlasuivante:
introduction;dfinitiondesconstantes,variablesglobalesetquivalences(sibesoin);sousprogrammes(sibesoin,etventuellementdansunfichier*.H);programmeprincipal.
2.3.1.IntroductionEllepermetceluiquiouvrelesourcedesavoircequoiilsert,quilaralis,etc.Cette
introductionestplaceentantquecommentaire.Parexemple:
/*Titre : thermomtre numriqueFichier : thermos.cAuteur : maquaire manoloBut : acqurir une temprature grce un capteur DS18x20 et lafficher sur un cran alphanumrique.Date de cration : 22 janvier 2008Dernire modification : 1 mars 2008Configuration : - c : PIC16F877A - Carte de dveloppement : EasyPIC4 - Quartz : 8 MHz (HS) - Modules externes : capteur DS1820 LCD - Software: mikroC v7.0.0.3Remarques : - La variable RESOLUTION dpend du capteur : - 18S20 : 9 - 18B20 : 9, 10, 11 ou 12 - Les DEL du port E doivent tre teintes.*/
2.3.2.Dfinitiondesconstantes,variablesglobalesetquivalencesLesconstantessontlesvaleursinvariablesquevautiliserleprogramme.Lesvariablesglobalessontlesvaleursvariablesncessairesaudroulementduprogramme.Lesquivalencespermettentunecriturecomprhensiblederfrencespeuexplicites.Parexemple:const unsigned short RESOLUTION = 9;const int FACTOR[4] = {5000, 2500, 1250, 625};char FlagMotor;char StepNow = 1;#define CHKVCC PORTC.F1#define ACQUIRE PORTA.F1Les deux premires lignes dfinissent des constantes; on leur affecte
obligatoirementunevaleur.Lesdeuxlignessuivantessontdesvariablesglobales.Lapremirenestpasinitialise,alors
quelasecondelest.Lesdeuxdernireslignessontdesquivalencesetnesontpassuiviesdunpointvirgule.
prof.maquaire@free.fr~formationEasyPICdes4et13mars2008introductionaulogiciel080513.odt page5/10
Elles permettent de ne pas crire PORTC.F1 (peu explicite) mais CHKVCC(explicite dans lecontextedudveloppementencours).Lesquivalencesnesontdfiniesquepourlecompilateur(do le #); elles ninfluent pas le fonctionnement du programme luimme. Lensemble desregistresduPICestdjaffectdesnomsplusoumoinsexplicites,parexempleladresse05hestaffecteltiquettePORTA.
2.3.3.SousprogrammesIls permettent de ncrire quune seule fois une partie de code frquemment utilise. Ils
permettentaussidallgerlavisibilitdufonctionnentgnral.Ilestconseilldecommentersuccinctementlerledechaquesousprogramme.Parexemple:// mise en RAM d'une constantevoid rom2ram(char *toram, const char *fromrom) { unsigned short count = 0; do { toram[count] = fromrom[count]; } while (toram[count++]); }
2.3.4.ProgrammeprincipalCest le programmeen luimme. Il est fortement conseill de respecter des dcalages
gauche,pouramliorerlalisibilitducode.Parexemple:void main() {Initialisation: Glcd_Init(&PORTB, 0,1,2,3,5,4, &PORTD); Glcd_Set_Font(FontAP255X8, 5, 8, 32); TRISC = 0b11111111; FlagPressOld = 1;...... Glcd_H_Line(1, 126, 61, 0); Glcd_H_Line(1, 126, 62, 0); } }
2.4.CompilationettransfertUnefoisleprogrammesaisi,ilfautlancerlacompilation(etprier!)puistransfrerlensemble
versleprocesseur(etencoreprier!)Plusieurspossibilitssontoffertes:
prof.maquaire@free.fr~formationEasyPICdes4et13mars2008introductionaulogiciel080513.odt page6/10
Ceboutonpermetdecompilerleprogrammeet(siaucuneerreurnestdtecte)delenvoyerversleprocesseur.Attention! Lors dune utilisation en session avec privilges rduits, il faut que PICFlashaittouvertaupralablegrceauscriptdontilestquestionen1.2.ou quilnaitpastouvertdutout(MikroCsemblelouvrircorrectement).
Ce bouton permet de compiler le programme pour vrifier si aucune erreurnatfaite.
Ce bouton permet denvoyer le programme dans le processeur. Il doit avoir tcompilaupralable.Attention!...mmeremarque...
Leprogrammedmarredesuite,unefoisletransferttermin.Remarque:laversiongratuitedeMikroCpermetdecompilerunprogrammequinedpasse
pas 2000 mots de Flash4. Le 16F877A en possdant 8192, il faut travailler avec une versionenregistrepourutiliserlensembledesammoire.Lespetitsprojets(miniprojets,TPEetPPE)nencessitentaprioripaslaversionenregistre.Enrevanchelaversionillimitedevientrapidementncessairelorsquelafficheurgraphiqueestmisenuvre.
2.5.ICDLacarteintgreundebuggerinsitu.Ilpermetdecernerlendroitquiposeproblmeausein
dun programme consquent. Ce debugger est dit temps rel mais attention, seules lescommandes Run et Run To Cursor le sont; en mode pas pas, lapplication estconsidrablementralentie,notammentlorsdelutilisationduGLCD.
LesbrochesRB6etRB7sontutilisesparlICD;cesbrochesnesontdoncpasdisponiblespourundveloppementsiledebuggerdoittreutilis.
2.5.1.LancementdelICD
Pour lancer lICD, cocher le bouton radio ICDdebugdanslongletProjectSetup.
CompileretchargerleprogrammedanslePIC.Attention! Il faut bien compiler le projet aprs avoircochleboutonradio.
Acestade,laDELRB7doittreallume.Le programme ne se lance pas automatiquement; ilattendunordrededmarrage.
4 Ou...2048??
prof.maquaire@free.fr~formationEasyPICdes4et13mars2008introductionaulogiciel080513.odt page7/10
Slectionnerledebugger.
Lancerledebugger.
Choisirleslmentsvisualiser.LafentreWatchestdeloinlaplusutilecarellepermetdevisualiserlvolutiondesvariablesduprogrammeetdecommanderlavancementduprogramme.
prof.maquaire@free.fr~formationEasyPICdes4et13mars2008introductionaulogiciel080513.odt page8/10
2.5.2.DebuggageLafentreWatchpermetdefaireprogresser leprogramme,devisualiser lesregistres, les
variablesetdenmodifierlecontenu:
2.5.3.ProgressionetpointsdarrtLorsdelaprogressionduprogramme,desicnesetdescouleurssontutilises:
prof.maquaire@free.fr~formationEasyPICdes4et13mars2008introductionaulogiciel080513.odt page9/10
Contrledudebuggage(marche,pause,arrt).
Contrledelaprogressiondu
programme.
Slectiondesvariablesvisualiser.
Ensembledesvariablesvisualiser.
Cliquersurunevariablepourenmodifierlecontenu.
Enrouge,lesvariablesquiontchang.
Laflcheverteetlalignebleuereprsentent
lapositionactuelle(laprochaineinstructionquiseraexcute).
Lacocheetlalignerougesreprsentent
unpointdarrt.
Lalignegriseestcelleosetrouvelecurseur
(utilepourlacommande
RunToCursor ).
Unelignesanspointbleusignifiequellenestpasassocieuneligneexcutable.Ilnefautpasutiliserlalacommande RunToCursor
aveccetypedeligne,carlecurseurneserajamaisatteint !
3.PICFlash5PICFlashpermetletransfertdunprogrammedjcompilverleprocesseur.Contrairement
MikroC,ce logiciel estdpourvudetoute limite. Enutilisationclassique, MikroCsechargedefournir lesinformations celogiciel etdedmarrerletransfert; il nestdoncpasrequisdeserfrer ceparagraphe.Nanmoins,siunfichierat rcupr auformat*.HEX,alorsilfautpasserparPICFlashpoursonenvoi.
LelancementdePICFlashsematrialiseparlafentresuivante:
LtapeenvoielefichierHEXdansleprocesseuretlanceleprogramme.
5 DeuxremarquesconcernantPICFlash:dunepartilestnoterqueladnominationPICFlashestutiliselafoispourleprogrammeurmatrieletpourlelogicielassoci.Cepointestsouventsourcedepetitesincomprhensionslorsdediscussions...dautrepartlatypographieadoptepourlenomPICFlashvarieauseinmmedesdocumentsdufabricant:PICflash,PicFlash(documentationsPICFlashetmikroICD),PICFlash(documentationEasyPIC4,inscriptionsurleprogrammeurmatrieletsiteInternet),PicFLASH(logiciel),etc.Jaiiciadoptlanotationquimesemblelaplusprobante:PICFlash.
prof.maquaire@free.fr~formationEasyPICdes4et13mars2008introductionaulogiciel080513.odt page10/10
Slectionner
PIC16F877A.
Cliquerici
pourchargerunfichierHEX.
Envoyerle
programmedansleprocesseur.
Celogodoittrerouge.
Iciondoit
avoir HS .
Recommended