Home
MICROÉLECTRONIQUE APPLIQUÉE GPA770
Contents
1. QQOQOOQ tn rg g xw J Fichier SofTec ini Environment Variables GENPATH Compiler libMHCl2cNsrc Compiler lib HC12c include Compiler lib HC12c lib LIBPATH Compiler lib HC12c include 18 OBJPATH Project bin TEXTPATH Project bin ABSPATH Project bin HI WAVE Target gdi Layout ASM layout hwl LoadDialogOptions AUTOERASEANDFLASH CPU HC12 GDI COMSETTINGS SETCOMM DRIVER NOPROTOCOL NOPERIODICAL SofTec BDM12 dll SofTec Microsystems GdiHCS12 Hardware inDART HCS12 DeviceName MC9812C32 inDART HCS12 GDI SETTINGS CMDFILEO CMDFILE STARTUP ON cmd SofTec startup cmd CMDFILE1 CMDFILE RESET ON cmd SofTec reset cmd CMDFILE2 CMDFILE PRELOAD ON cmd SofTec preload cmd CMDFILE3 CMDFILE POSTLOAD ON cmd SofTec postload cmd 1 1 3 1 5 Fichiers cmd de commandes pour le d vermineur Situ s dans le sous r pertoire projetl cmd ces fichiers sont utilis s pour automatiser les commandes que l on peut taper manuellement dans le d vermineur selon que la connexion est faite vers le simulateur ou vers la carte PK HCS12C32 Le simulateur poss de 5 fichiers de commandes Full Chip Simulation Reset cmd Fichier de commandes ex cut apr s une remise en route du programme Full Chip Simulation Startup cmd Fichier de commandes pour l amorce du d
2. s 100 Standard du format S RECORD de MOTOROLA ses 100 Appendice D aa a ae EF eese inae tva eb dens lease onset pUv educa e Te oaste eine ca aba 101 Commandes pour Ie devermineur sido sn Nate nd net a secet 101 ADpDendIC Ex a 105 Table d caraeteres ASCTL s s a e d e eite edi qi 105 Appendice ee 106 Circuits lectriques de la carte HCS12 STARTER KIT 106 III Table des illustrations Figure 1 Carte HCS12 STARTER KIT de la compagnie SofTec Microsystems 2 Figure 2 Dematret execuler sa AS SN akana asua Ne can te nn te 5 Figure 5 Description de la connexion cee ti eina ii Pet eee nee datent 6 Figure 4 S lection du port de t l communication eene nennen 6 Figure 5 Param tres de t l communication raa Ea dede cuyos ua Sx d eund 7 Figure 6 Hyper ESA ce ne obe ora studs uncial acetal ac sss ia agnata cen ha bete ed 8 Fie re 7 Ouverturex utr projets scit ceca oe aiv ideo div ras San dod aat esr Erud I utn 10 Figure 8 Chemin complet et nom du projet rece eden de interest 11 Figure 9 Choix du type de microcontr leur utilis a 11 Figure 10 Choix du langage de programmation 12 Figure 11 Choix du model de m molre de re re
3. Do not print included files in ist fie Object fle name specification enter efie gt LL Generate a listing ie ATEXTPATH Vn st D HCS12 FA2 L TEXTPATH Vzn lst OK Annuler Aide Figure 18 Cr ation d un fichier lst pour l assembleur en mode connexion la carte PK HCS12C32 3l Le fichier lst sera alors cr apr s la compilation dans le sous r pertoire projet1Vbin Pour qu il apparaisse dans l arborescence de CodeWarrior cliquez avec le bouton droit de la souris sur le sous r pertoire Sources Dans le pop up cliquez sur Add Files et s lectionnez le fichier Ist Exemple d un fichier main lst apr s compilation sans erreur Freescale HC12 Assembler c Copyright Freescale 1987 2005 coo I oO O1 amp Q N P Here Q N P2 Lo 5399 5400 5401 5402 5403 5404 5405 5406 5407 5408 5409 54 54 54 54 54 54 54 54 54 54 5420 5421 5422 5423 5424 5425 5426 5427 5428 5429 lt coo 1 oO 1 amp QO N S O 5430 5431 5432 5433 5434 5435 5436 OO I oO O1 amp C0 N P rere Q N P Lo 18 a003800 a003802 a004000 a004003 a004005 a004008 a00400B a00400D a0040 a0040 a0040 a0040 a0040 a0040 a0040 0 3 4 7 9 B E a004021 a004024 a004026 a004028 a00402B 0000 4000 CD00 CC00 0405 19EE B7C6 0435 3D code 00 01 00 02 18 00 07 F9 Source line
4. 86 Delo PARTONS Rene SAS E a Ute D ME SM aodio A 86 32 Calcul des Draguaces uu u tn re et Eus 88 3 1 3 Exemple de calcul d un braquage Corbis reset e rd leto ts eter bone ens Unt eva 90 3 1 3 1 Choix de la vitesse de braquape i e eee eri n tosieivses estatus deda Rus 90 3 1 4 Calcul de langle de braquage ie Re en oe DD OIM UE 90 3 2 LABORATOIRE 3b Robot mobile 91 32 11 Point MOT ES 91 322 Taal Oi ASS Nish s U eum e i pn R quasi ste E NA LE 91 3 2 2 1 Alignement pour la marche avant ee deer he eee es 91 3 2 3 Sugg sti ns et approches ernennen is dans pain me ce Ne esit ines 91 II 3 2 3 Routine de service d interruption des moteurs 92 3 2 3 2 Routine sans fin du programme principale 92 3 2 3 3 Routine de service d interruption pour les pare chocs 93 3 3 Rapport pour le laboratoire 3 94 3 3 1 Travail remettre et bar me de correction 94 PLA CEN CE eee 95 Syntaxe de compilation pour le langage micro assembleur de Motorola 95 Appendice BD a saa 98 Directives de compilation pour le langage assembleur de Motorola 98 Appendice rm
5. P6 Routines jprintf Entr e registre d contient l adresse de d part d T che transmettre un terminal un phrase de texte pM ascii termin e par un O00hex ar Sortie aucune PT pOCKCkCk kokckokokckckokckok koe k k k Kk k k k k k k k k K K hock K K ke kc ke K K ek KOK R K KOK K kk K RK KOR K ke hock e K Printf pshx Sauvegarde de X et B xgdx DebutPrintf ldab 0 x beq FinPrintf putchar inx bra DebutPrintf FinPrintf pulx restorer B et X rts Ck K x x k k K lt x lt k k K K x lt k x K k lt K x x Ck k lt K x x k x K K lt lt k X lt k k k X k k k Sk k k k k k ko ko ko lt X lt x Chargement de la table de vecteur pour la simulation de D BUG12 x x Ck K x k k K k x k k x K k lt k x x lt k k K x lt k X K K x lt k k lt k X k k k k k k k k k k k k k k ko k ko X X X X ORG SFE02 jgetchar dc w Getchar jputchar dc w Putchar jprintf ORG jout2hex jout4hex dc w SFI dc w dc w Printf 16 Out2hex Out4hex 29 1 1 4 Compl ment pour votre environnement 1 1 4 1 La tabulation Positionnez la tabulation quatre espaces pour le langage assembleur Dans CodeWarrior s lectionnez Edit Preference dans la fen tre IDE Preferences cliquez sur Font amp Tabs et tapez 4 dans Tab size IDE Preference Panels B Font amp Tabs General Build Settings Font settin
6. ELSE ENDIF marque la fin de l dition d une macro Fin du texte source pour le compilateur Assigne une valeur permanente une tiquette Assigne une valeur temporaire une constante R serve n octets en m moire Synonyme RMB R serve n mots en m moire Si condition est vrai on compile le code assembleur suivant le IF Relation LI gt SEM lt Le lt gt Sinon on copile le code assembleur suivant le ELSE Fin du IF ELSE Example Try EQU 0 IF Try 0 LDAA 103 ELSE LDAA 0 ENDIF 99 Appendice C Standard du format S RECORD de MOTOROLA The Motorola S Record format encodes programs or data files in an ASCII format S records are character strings of five fields record type record length memory address data and checksum Each byte of binary data is encoded as a two character hexadecimal number the first character represents the high order four bits and the second the Loin order four bits of the byte TYPE LENGTH ADDRESS DATA CHECKSUM Fields in a Motorola S Record record Field Length Bytes Description TYPE 2 This field indicates the start of a record and identifies the record type as folLoins SO Header record S1 Data record for 16 bit addresses S2 Data record for 24 bit addresses S3 Data record for 32 bit addresses S5 Count record S7 Terminator record for 32 bit addresses S8 Terminator record for 24 bit addresses S9 Terminator record for 26 b
7. 1 3 2 Simulation du contr le de deux moteurs DC Afin de simuler un contr le de moteur nous assumons que stoker les valeurs de deux octets 16 bits dans les adresses m moire M M 1 M 58 M 59 affectera les vitesses du moteur gauche du robot De fa on similaire stocker les valeurs de deux octets 16 bits dans les adresses m moire M 60 M 61 M 118 M 119 contr lera les vitesses du moteur droit du robot Il est noter que l adresse la plus basse contient l octet le plus significatif de la vitesse du moteur M M 1 17 70 Figure 30 Exemple de la premi re vitesse du moteur gauche en m moire 49 La vitesse d un moteur devra suivre un profile trap zoidal pour simuler un d placement doux du robot Acc l ration douce PA suivie d une vitesse constante PC et d une d c l ration douce PD Consid rez les chiffres suivants pour contr ler la vitesse d un des moteurs Une vitesse maximum avant 8000 d c Une vitesse nulle 6000 d c Une vitesse maximum arri re 4000 d c Vitesse Vconstante Temps 0 TA Te Total Figure 31 Exemple du profil de la vitesse d un moteur partir des deux param tres suivants la vitesse constante 16 bits non sign e Vconstante en RAM et le temps total 16 bits non sign Ttotal en RAM 1 Faire une premi re sous routine l aide de la technique de passage des param tres par valeurs qui sera en mesure de calculer les temps PA PC et PD c d tro
8. 4 active un compteur binaire sur les DELs branch es sur le port B 0X 0 F 0X Xo F F F F F X X F F X X F F F ox ox z Ck lt K x lt k x K K k Ck k x Ck k lt K k x lt k lt K k lt lt k K K X lt k k kk k k k k k k k k k k k k k Sk k k ko X k X ko ko X XX Point d entr e du programme ABSENTRY Entry point d entr e pour adressage absolu nolist D sactiver l insertion de texte dans le fichier LST mc9s12c32 inc Inclusion du fichier d identification des registres INCLUDE D BUG12M MAC D finition de macros pour des appels simples en assembleur getchar putchar out2hex out4hex printf R activer l insertion de texte dans le list s fichier LST 1j INCLUD ROMStart EQU 4000 Adresse absolue pour le d but du programme et des constantes PRE RK EEK KK k k k k k k k k k k k k k k k K KOK K K K ke KOK KOK KK KOK KK KOK KOK K KOK OK khe K K KOR K K KOR KOK K K ke ke K R KOR R R K D claration des variables data section MY EXTENDED RAM 0800 z Ck ck x lt k x K K lt lt k x K k lt K k x K k lt x k x lt k K K x lt k X lt X k k amp kk k k X k k k k Sk k k amp ck k k lt k k k k X lt ko x XX 35 ORG RAMStart Compt ds b 1 Compteur binaire pORCKCkCkCkckckck 1k k k k k ke k k k k k k k k k k k k k k K K ek K
9. Vous avez demand lors de la construction de votre projet la possibilit d avoir deux connexions pour votre code Une connexion vers le simulateur et l autre vers votre carte PK HCS12C32 Votre projet a donc cr deux fichiers d initialisation pour vos deux diff rents environnements Situ dans le sous r pertoire projet1 ces fichiers ini remplissent les t ches suivantes 1 pr conditionnent l environnement en stipulant les diff rents chemins d acc s pour les fichiers sources les fichiers objets les fichiers ex cutables les biblioth ques et les fichiers d inclusion 2 pr conditionnent le d vermineur et 3 autorisent l utilisation des fichiers de commandes que l on verra plus loin Fichier Simulator ini Environment Variables GENPATH Compiler libMHCl2cNsrc Compiler lib HC12c include Compiler lib HC12c lib LIBPATH Compiler lib HC12c include OBJPATH Project bin TEXTPATH Project bin ABSPATH Project bin HI WAVE Target sim Layout ASM layout hwl LoadDialogOptions AUTOERASEANDFLASH CPU HC12 Simulator CMDFILEO CMDFILE STARTUP ON cmd simulator startup cmd Simulator HC12 DFILEO CMDFILE DFILE1 CMDFIL DFILE2 CMDFIL DFILE3 CMDFIL HCS12 SUPPORT 1 FCS MC9S12C32 ESET ON cmd simulator reset cmd OAD ON cmd simulator preload cmd OSTLOAD ON cmd simulator postload cmd ETCPU ON cmd simulator setcpu cmd
10. readme txt a HEA Sources 293 2 El B tpl asm 293 2e zj B tpi lst n a n a a a Pirm a E burner bbl n a n a zi Debugger Project File a AB Simulator ini n a n a a Figure 22 Choix de la connexion pour le d vermineur 39 1 1 8 T l chargement 1 1 8 1 Connexion virtuelle Simulator Pour la connexion vers le simulateur de microcontr leur 1 assurez vous d avoir s lectionn la connexion Simulateur dans votre environnement 2 branchez cette connexion un terminal et des entr es sorties virtuelles grace aux commandes suivantes dans le fichier Full Chip Simulator SetCPU cmd At startup the commands written below will be executed OPEN Terminal 40 40 40 40 OPEN IO LED PORT 1 DDR 3 1 1 8 2 Connexion r elle SofTec Pour la connexion vers le microcontr leur 1 assurez vous d avoir s lectionn la connexion SofTec dans votre environnement 2 reliez le c ble USB de votre PC la carte HCS12 STARTER KIT 1 1 8 3 T l chargement vers la connexion choisie Le t l chargement de votre programme s effectuera en invoquant le d vermineur Pour invoquer le d vermineur s lectionner Projet Debug F5 ou cliquer sur l ic ne Debug 4g Processor Expert Window He 1G Pia SCRE E xi x s F b 0 M 3e3X X 3 3 3 3 Figure 23 Debug 40 A la compilation une fen tre de construction de projet s ouvre et monitorise la compilation de votre
11. re Routines jgetchar Entr e aucune m T che lire un caract r n provenance du terminal Sortie caract re ascii dans le registre b i x x e amp ck ck ck k k k KKK amp amp k k k k k k k k amp ck k k k k k KKK amp k k k k k k k k k k k k k k k k k k k k k k k k ko k k k k ko Getchar psha Getcharl ldaa SCISRI anda 20 RDRF 1 beq Getcharl ldab SCIDRL lecture du caract re pula rts 26 Ck K k x k k K kk lt k k lt Ck lt lt k x K x K K k lt K kk x lt k x K Sk x k k k lt k k k k k k k k k Sk k k k k k ko ko ko lt ko P Routines jputchar Entr registre b contient le carat re ascii T che transmettre un terminal un caract re ascii Sortie caract re ascii dans le registre b LS dee ede de eee de eoe eee dee e ce ede he eee e Se ye de se e eee TE de eee e eec eoe de ae RR koe ee Se ye eese Putchar psha Putcharl ldaa anda BEQ clr stab pula rts Routines Entr SCISRI S40 TDRE 1 Putcharl SCIDRH SCIDRL criture du caract re lt K x x k k K KK KK k K KK lt k KK KK KK KK KK KK KK KK KK KK X k k k k k ck k k k k k k k k k k ko KKK KKK jout2hex T che Sortie lt K x k kk k lt k k X Ck k lt K k x Sk Ck k kk k k lt Ck k kk Sk Sk Sk amp k kk ck k k k k k Sk k k k ko ko k X X X X registre b contient le code hexad cimal transmettre un
12. O AetB sont des accumulateurs de 8 bits D est la concat nation des accumulateurs A B et repr sente un accumulateur de 16 bits Exemples de mode d adressage Mode d adressage 1 Inh rent INX Incr mente de un le registre d indexation X 2 Imm diat LDX 1234 95 3 4 5 6 7 8 9 Direct tendu Relatif Offset 5 bits et index R Offset 3 bits et index R Pr d cr ment Offset 3 bits et index R Pr incr ment Offset 3 bits et index R Post d cr ment Le mode imm diat stipule que l argument est imm diatement apr s l instruction Apr s l ex cution X 1234 LDAB 0F L op rande de 8 bits pointe l argument dans la partie basse de la m moire entre l adresse 0000 et 00FF Apr s l ex cution de cette instruction B au contenu de l adresse 000F STD F03B L op rande de 16 bits pointe l argument dans une plage m moire de 64 K octets Apr s l ex cution D au contenu de l adresse SF03B et F03C parce que D est un 16 bits BEQ TX FIN Le compilateur calcule la distance en octets qui s pare le PC de l tiquette TX FIN et la place dans l argument de BEQ S1 le test est positif on repositionne le PC relativement au test LDAB 0 X STAB 8 Y L op rande de 5 bits est additionn au registre d indexation pour former l adresse de l argument STAA 1 SP L op rande de 3 bits est pr soustrait au registre d indexation SP pour former l adresse de l
13. done cmd SofTec_inDART HCS 43 La fen tre Register affiche le contenu des registres internes au CPUI2 Ces registres ne font pas partie de la m moire du microcontr leur Ils appartiennent l ordinateur CPU12 du microcontr leur Ils ne poss dent pas d adresses mais des noms A B D Etc Le point d entr e de votre programme est ip 4000 c est dire charge 4000 dans le pointeur d instruction Vous pouvez v rifier que ip 4000 dans la fen tre Register 1 1 8 5 D placement dans le programme Au d part le devermineur ne d marre pas votre programme Son pointeur d instruction est pr t ex cuter l instruction contenue dans l adresse 4000 soit CLI qui stipule de permettre toutes les interruptions Pour ex cuter cette instruction seulement vous pouvez taper dans la fen tre de Commande la commande STEPINTO ou cliquer une fois sur la fl che bleue la gauche de la barre d outils Single Step Time Simulator amp Real Time Debugger F GPA770 labo1 projet1 SofTec_inDART HCS12 ini File View Run inDART HCS12 Component Command Window Help neal o lm VIN MERE Ej Source X Assembly FAGPA770Mabol projet bin tp1 dg Line 71 ORG ROMStart 000 ANDCC 239 4 4096 4005 LDAB 4007 STAB 4009 LDAB 400B STAB 400D LD B 51000 z initialisation de la pile au haut de ls RAM 0800 0FFF Register SR RERR ARR ER E RENTRER RATS ERA ENTRE RER T ERE REAR RES ARE REE AREER EREE EERE E
14. include derivative specific macros INCLUDE mc9s12c32 inc ROMStart EQU 4000 absolute address to place my code constant data variable data section ORG RAMStart Insert here your data definition Counter DS W 1 FiboRes DS W 1 code section ORG ROMStart Entry LDS RAMEnd 1 initialize the stack pointer CLI enable interrupts mainLoop LDX 1 X contains counter couterLoop STX Counter update global BSR CalcFibo STD FiboRes store result LDX Counter NX ERX 24 larger values cause overflow BNE couterLoop BRA mainLoop restart CalcFibo Function to calculate fibonacci numbers Argument is in X LDY 00 second last LDD 01 t last DBEQ X FiboDone loop once more if X was 1 were done already Vous trouverez la d finition des directives de compilations en appendice B 16 FiboLoop LEAY D Y overwrite second last with new value EXG D y exchange them gt order is correct again DBNE X FiboLoop FiboDone RTS result in D PARKER k koe k k k k k k k k k k k k k k k k k k k k k k k k k K K ke K K K K ke K KOK ke KOR KO KOR O OR k ke ke ke e ke ke ke K k rd Interrupt Vectors KKK KKK KKK KKK KKK KKK KKK KKK KKK KK KK KKK KK KK KKK KKK KKK KKK KKK ckck kckckck AK A r ORG FFFE DC W Entry Reset Vector 1 1 3 1 3 Fichier burner bbP Situ dans le sous r pertoire projet1VPrm ce fichier contient les commandes pour le br leur de EEPROM FLASH dans le microcontr leur Le br
15. Discussion 2 Conclusion 196 Pr sentation globale du rapport 10 Pr sentation globale du cod Hussein suite 6 Fin du laboratoire 2 84 3 LABORATOIRE 73 Navigation temps r el du robot mobile Jusqu pr sent vous avez tudi et mis en place 1 un contr leur logique flou 2 une d tection de bouton poussoir par interrogations ou par interruptions 3 une communication vers un afficheur LCD 4 une modulation d impulsion pour le contr le de la vitesse des moteurs et 5 un d tecteur de proximit pour le robot mobile Apr s la mise au point d un contr le de direction ce laboratoire vous permettra finalement de r aliser le robot mobile final 85 3 1 LABORATOIRE 733a Contr le de la direction du robot mobile partir de la modulation de la dur e d une impulsion ce laboratoire vous permettra de contr ler l orientation du robot mobile Pour ce faire vous devrez a Utiliser les m canismes des signaux de sortie sur une comparaison d horloge output compare OCn pour contr ler la vitesse des moteurs droit et gauche b Utiliser les m canismes de la capture des temps d entr es input capture ICn pour compter le nombre d impulsions envoy es un moteur c Changer la vitesse des moteurs en ajustant la dur e des impulsions qui entrent dans le servomoteur de chacun des moteurs d Configurer le port T comme dans le labo2b 3 1 1 Introduction Vous devez concevoir une r
16. Indicatif r gional Num ro de t l phone Se connecter en utilisant S upraMA X 56i SupraMAx 56i COM3 COM x COM2 TCPAP fufincacll Figure 4 S lection du port de t l communication Une derni re fen tre s affiche pour fixer les Param tres de t l communication S lectionnez les param tres suivants 9600 bits par seconde 8 bits de donn es aucune parit un bit d arr t et aucun contr le de flux En cliquant OK cette tape le port de communication s active mais votre connexion n est pas sauvegard e Propri t s de COM1 LRQ ee eg Param tres du port Bits par seconde Bits de donn es 8 Parit Bits d arr t Contr le de flux V Param tres par d faut Figure 5 Param tres de t l communication Pour sauvegarder cette connexion dans votre compte allez dans Fichier du HyperTerminal faites Enregistrer sous naviguez jusqu votre compte et tapez un nom pour cette connexion ComHCS12 HyperTerminal Smee Edition Affichage Appeler Transfert Nouvelle connexion F Ouvrir Enregistrer Mise en page Imprimer Propri t s Quitter Alt F4 Enregistre la session en cours sous un nouveau nom Figure 6 HyperTerminal Ceci termine la premi re tape de l installation de l environnement Un compte est tout simplement un sous r pertoire priv dans lequel vous sauvegardez vos programmes vos projets vos fichiers de commande
17. de fonctions sp cialis es la r alisation de contr leurs flous Les nombreuses composantes du microcontr leur sont encapsul es dans une seule pastille de 80 broches qui forment le microcontr leur Motorola MC9S12C32 Vous pouvez localiser ce microcontr leur sur la carte HCS12 STARTER KIT de la compagnie SofTec Microsystems dans le laboratoire de micro lectronique appliqu e Figure 1 La carte HCS12 STARTER KIT est une carte de d veloppement qui assure une utilisation facile et imm diate du microcontr leur Elle poss de un autre microcontr leur interfa ant le bus USB d un ordinateur personnel PC son mode BDM Ainsi interfac le bus USB permet l alimentation de la carte le t l chargement et le d verminage de programme en temps r el partir d un PC Enfin la carte poss de trois commutateurs huit diodes mettrices de lumi re DELs et un potentiom tre pour les d mos ainsi qu un espace r serv pour le prototypage d interfaces lectroniques pour le monde ext rieur Une description plus compl te de la carte se trouve dans le fichier pk hcs12c32 schematic pdf ainsi qu en appendice PROTOTYP AREA HI HHN HRH H PT CAK W C I 1 PADOO PPO PP RESETIMCU HCS12 STARTER KIT www softecmicro com 1 Section USB BDM 2 Section d monstration 3 Section MCU Microcontroller Unit 4 Section de prototypage Figure 1 Carte HCS12 STARTER KIT de la compagnie SofTec Microsystems Ref pk hcs12c32
18. gt et R W 0 gt dans le port de contr le 2 mettre le caract re ASCII dans le port de data 3 mettre le E bit 0 4 attendre 2 ms et finalement 5 remettre le E bit du port de contr le 1 Pour envoyer une instruction au LCD il faut 1 mettre les bits E 1 et les bits RS et R W 0 gt dans le port de contr le 2 mettre la commande dans le port de data 3 mettre le E bit 0 4 attendre 2 15ms selon la commande et finalement 5 remettre le E bit du port de contr le 1 66 Les instructions possibles envoyer au LCD sont les suivantes Instruction Desctiption Clear Display Entry Mode Set Erases the display and put AC at 0 Puts the address 00h into AC and re init ixes the moving direction of the cursor not the cursor Moves the cursor and shifts the display Cursor or Display Shift PEBBBEB nM Function Set 0 1 DL N Fixes the data exchange width and the line number to display Figure 39 Instructions possibles au LCD en mode simulation Display On Off Control g Lights on or off the display and shows or N B Pour plus d information sur les instructions voir le document Manual Engine HCI2 pdf pour le mode simulation ou le fichier LCDmanual pdf pour le mode r el L initialisation du LCD demande 8 tapes voir la figure 40 L instruction Function Set Command doit tre envoyer 3 fois de suite pour activer le nombre de bit
19. k k k k koe k k ke ke k k k k k k k k k k k k k k K ke k K K Kk K K K K K K K K K K KOK K K K kc e ke ke K KOR K KOR K K ke ke ke K ke This stationery serves as the framework for a single file absolute assembly application For a more comprehensive program that demonstrates the more advanced functionality of this T please see the demonstration applications located in the examples subdirectory of the user application processor export symbols XDEF Entry ABSENTRY Entry ROMStart EQU Freescale CodeWarrior for the HC12 Program directory ck ck ok ok ok ck ck ck ck 0k 0k 0k kk kk ck ck ck ck 0k 0k KKK KKK KX KX KK KX KX kk kk ck ck ck ck ck ck ck ck kk kk kk ck ck ck kA Ak XX ko ko x export Entry symbol for absolute assembly mark this as application entry point 4000 absolute address to place my code constant data variable data section Insert here your data definition DS W 1 DS W 1 Counter FiboRes ORG RAMStart code section Entry mainLoop couterLoop Function to calculate fibonacci CalcFibo FiboLoop FiboDone ORG LDS CLI LDX STX BSR STD LDX NX CPX BNE BRA LDY LDD DBEO LEAY EXG DBNE RTS ROMStart RAMEnd 1 Counter CalcFibo FiboRes Counter 24 couterLoop mainLoop 500 501 X FiboDone D Y D Y X FiboLoop initialize the stack poin
20. poster pdf 1 LABORATOIRE 1 Programmation assembleur du 68HCS12 Le laboratoire 1 comporte cinq parties qui vous familiariseront avec le microcontr leur son environnement ses diff rents modes d adressage et de branchement A la fin de ce laboratoire vous serez en mesure de cr er d diter de compiler de lier et de d verminer un programme assembleur avec les diff rents outils mis votre disposition 1 1 LABORATOIRE 71a Mise en place et essai de l environnement de d veloppement 1 1 1 Mise en place de l environnement de d veloppement 1 Installer un mulateur de terminal clavier et cran sur votre PC Personal Computer qui permettra votre microcontr leur de communiquer lexicalement avec un utilisateur 2 Cr er un projet dans l environnement int gr IDE Integreted Development Environment qui automatisera l dition la sauvegarde la compilation et le d verminage de vos programmes 1 1 2 Installation d un mulateur de terminal VT100 Virtual Terminal 100 Le microcontr leur HCS12 peut recevoir et transmettre des caract res ASCII American Standard Code for Information Interchange via un clavier et un cran gr ce un port s riel programmable sp cialis pour la communication Dans un premier temps on vous demande de relier ce port s riel un terminal c est dire un cran et un clavier Un mulateur de terminal Hyper Terminal existe dans le syst me d exploitation Windows
21. sent sur la carte d valuation qui correspond au bit PTPO du port P Ce commutateur et d j branch physiquement au port P comme le montre la figure 36 et est normalement ouvert PPO Figure 35 Bouton poussoir de la carte d valuation Notez que ce bouton utilise le mode pull up interne du microcontr leur 68HCS12 Initialisez le port P comme suit 1 Mode pull ups pour la broche 0 du port P 2 Port P broche 0 en entr e Vous devez donc lire le port P registre PTP bit 0 tant et aussi longtemps que l entr e ne passe pas de 1 0 avant de poursuivre votre programme 61 2 1 2 Mode simulation En mode simulation on doit brancher des boutons poussoirs au port P Ins rez les lignes de commandes suivantes dans le fichier Simulator SetCPU cmd pour brancher les boutons poussoirs au simulateur OPEN Push Buttons Module des boutons poussoirs PBPORT 0258 Adresse du port P PTP Figure 36 Boutons poussoirs en mode simulation N B Les bouton poussoirs du simulateur sont normalement ferm s Il faut donc attendre une transition de 0 1 avant de poursuivre le code l inverse des boutons poussoirs de la carte de d veloppement 2 1 3 Mode simulation et r el Comme vous avez deux type de boutons poussoirs diff rent un pour le mode simulation qui donne une transition de 0 1 et un pour le mode r el qui donne une transition 1 0 il vous faudra deux bouts de code diff rents pour tester ces boutons Il exis
22. vermineur Ce fichier est ex cut apr s le t l chargement de l interface de la connexion Full Chip Simulation Preload cmd Fichier de commandes ex cut avant le t l chargement du programme Full Chip Simulation Postload cmd Fichier de commande ex cut apr s le t l chargement du programme Full Chip Simulation SetCPU cmd Fichier de commandes pour pr conditionner le CPU en mode simulation Vous trouverez les commandes plausibles de ces fichiers en appendice D 19 Le SofTec poss de quant lui 4 fichiers de commandes SofTec Reset cmd Fichier de commandes ex cut apr s une remise en route du programme SofTec Startup cmd Fichier de commandes pour l amorce du d vermineur Ce fichier est ex cut apr s le t l chargement de l interface de la connexion SofTec Preload cmd Fichier de commandes ex cut avant le t l chargement du programme SofTec Postload cmd Fichier de commande ex cut apr s le t l chargement du programme A titre d exemple le programme de bienvenu que vous aurez crire assembler et ex cuter un peu plus loin utilisera un terminal virtuel pour communiquer lexicalement avec un utilisateur et des DELs virtuelles pour afficher un compteur binaire Pour brancher huit DELs virtuels un port d entr e sortie ainsi qu un terminal virtuel au microcontr leur HCS12 en mode simulateur il faut ex cuter les commandes suivantes dans le d vermineur OPEN Terminal
23. PRES PRES SF AGAUCHE R gle 10 MIDI LOIN LOIN SF ADROITE R gle 11 MIDI LOIN MIDI SF ADROITE R gle 12 MIDI LOIN PRES SF AGAUCHE R gle 13 MIDI MIDI LOIN SF ADROITE R gle 14 MIDI MIDI MIDI SF ADROITE R gle 15 MIDI MIDI PRES SF AGAUCHE R gle 16 MIDI PRES LOIN SF ADROITE R gle 17 MIDI PRES MIDI SF ADROITE R gle 18 MIDI PRES PRES SF AGAUCHE R gle 19 PRES LOIN LOIN SF ADROITE R gle 20 PRES LOIN MIDI SF ADROITE R gle 21 PRES LOIN PRES SF ADROITE R gle 22 PRES MIDI LOIN SF ADROITE R gle 23 PRES MIDI MIDI SF ADROITE R gle 24 PRES MIDI PRES SF ADROITE R gle 25 PRES PRES LOIN SF ADROITE R gle 26 PRES PRES MIDI SF ADROITE R gle 27 PRES PRES PRES SF ADROITE Tableau 2 R gles du contr leur flou 1 5 1 3 Affichage des r sultats du contr leur flou Une fois le programme du contr le flou de navigation du robot en place avec les fonctions de D BUG12M afficher l cran le texte suivant Entr es Vcap gauche XX Vcap centre XX Vcap droite XX Sortie XX Les XXs en entr e repr sentent les valeurs de voltages hexad cimales des capteurs Les XXs de la sortie repr sentent la direction que le robot doit prendre de 10 F0 o 10 braquage gauche maximum F0 braquage droite maximum 57 1 6 Rapport pour le laboratoire 1 1 6 1 Travail remettre Pour ce premier laboratoire vous devez remettre 1 Un imprim fonctionnel et tr s bien comment de vos programmes LAB1b ASM LABId ASM et LA
24. XDEF ORG EVEN DC W FDB DC B FCB INCLUDE LIST NOLIST MACRO Stipule le point d entr e si utilis comme r f rence externe a un autre module stipule que ce qui suit est en commentaire ORIGIN stipule au compilateur de commencer compiler l adresse indiqu e On peut mettre autant de ORG que l on veut dans un programme Force la compilation une adresse paire stipule au compilateur que le nombre qui suit est en hexad cimal stipule au compilateur que le nombre qui suit est en binaire stipule au compilateur que le nombre qui suit est en octal DEFINE CONSTANT SIZE WORD mettre la constante suivante l adresse o le compilateur est rendu dans sa compilation FORM DOUBLE BYTE Synonyme DC W DEFINE CONSTANT SIZE BYTE mettre la constante suivante l adresse o le compilateur est rendu dans sa compilation Synonyme DC FORM CONSTANT BYTE Synonyme DC B colle le fichier texte attach la directive tout endroit de votre programme o la directive est invoqu e partir de la directive mettre le r sultat de la compilation avec le texte du programme dans un fichier Ist partir de cette directive on d sactive la directive LIST Noter que LIST et NOLIST peuvent tre employ es aussi souvent que l on veut marque le d but d dition d un macro compteur d appels d une macro 98 ENDM END EQU SET DS B n DS W n IF cond
25. argument LDAB 2 X L op rande de 3 bits est pr additionn au registre d indexation X pour former l adresse de l argument LDAB 1 X L op rande de 3 bits est post soustrait au registre d indexation X apr s avoir charger l argument l adresse X dans l accumulateur A 96 10 11 12 13 14 15 Offset 5 bits et index R Offset A ou B et index R ou offset D et index R Offset 9 bits et index R Offset 16 bits et index R sign ou pas Offset 16 bits et index R indirect pointent l argument Offset D et index R indirect pointent l argument LDAB 3 X L op rande de 3 bits est post additionn au registre d indexation X apr s avoir charger l argument l adresse X dans l accumulateur B LDAB D X L accumulateur D est additionn X pour former l adresse de l argument LDAB FE X L op rande de 9 bits est additionn X pour former l adresse de l argument LDAB 1234 X L op rande 1234 est additionn X pour former l adresse de l argument LDAB 10 X L op rande 10 est additionn X et pointe l adresse de l adresse de l argument qui sera charg dans l accumulateur B LDAB D X L op rande D est additionn X et pointe l adresse de l adresse de l argument qui sera charg dans l accumulateur B 97 Appendice B Directives de compilation pour le langage assembleur de Motorola ABSENTRY Stipule le point d entr e en adresse absolue pour le d vermineur
26. c l ration au braquage vitesse constante et la marche avant vitesse constante Pour se faire il suffit d utiliser une variable d identification pour l un des modes d utilisation Les modes acc l ration et d c l ration seront fix s par le programme principal alors que les modes de vitesse constante et arr t seront fix s par la routine de service d interruption elle m me 3 2 3 2 Routine sans fin du programme principale La routine sans fin du programme principal devrait tre en mesure de Si l arr t 1 Attendre le bouton de mise en marche ou d talonnage 2 Indiquer le mode actif 3 Retourner au d but de la routine sans fin Si en acc l ration 1 Attendre la marche avant 2 Retourner au d but de la routine sans fin Si en marche avant 1 Num riser les voltages des trois capteurs de proximit 2 Sauvegarder ces valeurs dans les trois variables d entr es du contr leur flou 3 Amorcer une autre conversion 4 valuer la valeur de braquage avec le contr leur flou 5 Sauvegarder la valeur de braquage pour la routine de service d interruption 6 Attendre 250ms 7 Afficher les valeurs des capteurs de proximit sur l afficheur LCD 8 Retourner au d but de la routine sans fin Si en d c l ration 1 Attendre l arr t 2 Retourner au d but de la routine sans fin 92 3 2 3 3 Routine de service d interruption pour les pare chocs Enfin Comme les capteurs de proximit ne peuvent voir les
27. changer la valeur d un registre de contr le du CPUI2 en double cliquant sur l adresse d un registre 46 Malali CORE MEBI PORTB 00 mW 00 00 00 oo oo B 8F 06 00 00 90 DO Ol 00 09 00 O1 OD OO OF OO 10 00 00 33 00 00 80 40 F2 3 B gt 000020 80 00 00 00 00 O0 gt its and trace possible MC9S12C32 Trigger occured Figure 29 Changer la valeur du registre d entr e sortie PORTB ou bien en changeant la valeur d une allocation m moire en double cliquant sur celle ci dans la fen tre Memory Noter que le d vermineur est l outil le plus important ma triser Le temps que vous passerez apprendre le contr ler vous sera rendu au centuple dans les prochaines s ances de laboratoire Consultez le manuel Manual Engine HC12 pdf pour de plus amples informations Explorez le fond 47 1 2 LABORATOIRE 1b Programme simple avec branchements de base Jusqu pr sent vous avez mis en place votre environnement ouvert un projet et test cet environnement Vous tes fin pr t programmer en langage assembleur Ce laboratoire est concu pour faciliter l utilisation d instructions pour les branchements dans les situations incluant les cas if then else Avec quelques modifications vous pourrez utiliser le programme r sultant en tant que sous routine dans le laboratoire final pour cr er le syst me de navigation d un robot mobile dans un labyr
28. d appartenances D Loin D Midi D Pres C Loin C Midi C Pres G Loin G Midi G _ Pres Notez que la non lin arit entre les fonctions LOIN MIDI et PRES respecte la non lin arit des voltages de sorties des capteurs IRs du tableau pr c dent 55 LOIN MIDI PRES FF Degr d appartenance 00 00 20 30 50 60 FF Voltage Figure 33 D finition des fonctions d appartenance d entr es pour chacune des variables du contr leur flou En utilisant les trois singletons pour les poids de la moyenne pond r e suivants on d fini trois constantes AGAUCHE 10 DEVANT 80 ADROITE F0 AGAUCHE AVANT ADROITE 10 80 SFO Figure 34 Singletons pour d fuzzifier la sortie du contr leur flou 1 5 1 2 D veloppement des r gles du contr leur flou Comme nous avons trois jeux de fonctions d appartenance en entr e il faut d finir 3 X 3 X 3 r gles pour le contr leur flou soit 27 r gles en tout 56 Tableau des R gles du contr leur floues R gles Capteur Capteur Capteur D placement du gauche central droit robot R gle 1 LOIN LOIN LOIN SF_AVANT R gle 2 LOIN LOIN MIDI SF_AGAUCHE R gle 3 LOIN LOIN PRES SF_AGAUCHE R gle 4 LOIN MIDI LOIN SF ADROITE R gle 5 LOIN MIDI MIDI SF AGAUCHE R gle 6 LOIN MIDI PRES SF AGAUCHE R gle 7 LOIN PRES LOIN SF ADROITE R gle 8 LOIN PRES MIDI SF AGAUCHE R gle 9 LOIN
29. de compter le nombre d impulsions envoy es aux moteurs par les OCn en les capturant sur les ICn 76 Le temps de capture qui sera stock dans les compteurs TCOH TCHOL et TCIH TCIL associ aux ICn ne nous int resse pas pour le moment Ce qui nous int resse c est uniquement le nombre d impulsions captur es par les ICn Les impulsions arriveront intervalles r guliers de 16 384ms repr sentant la p riode du OC7 On aura donc environ 61 comptes par Cn par seconde Le comptage du nombre des impulsions envoy es aux moteurs se fera l aide d interruptions Les interrupteurs seront les ICO et ICI et s activeront sur le front montant des impulsions Pour ce faire vous devez programmer le registre TCTL4 pour la reconnaissance d un front montant sur les entr es ICO et ICI et permettre les interruptions des entr es ICO et ICI dans le registre TIE Timer Interrupt Enable Les vecteurs associ s aux interrupteurs ICO et ICI sont situ s aux adresses FFEE et FFEC dans lesquelles vous devrez mettre les adresses de services des interruptions 2 3 2 7 Routines de service et programme principale Une des routines de service d interruption devra l compter le nombre d impulsions qui sont envoy es aux moteurs 2 g rer les secondes partir de ce compte 3 acquitter la requ te d interruption en d posant un 1 logique sur le drapeau correspondant l aide de l instruction MOVB dans le registre de drapeaux TFLG1 L instruction MOVB
30. eroe eoa berets 73 Contr le de la vitesse des moteurs gauche et droit par la modulation de la dur e 75 Profil de vitesse pour le contr le des moteurs en marche avant 76 Capteur infrarouge GP2YOA2LYK re es Rer pore dn t 78 Voltage analogique en fonction de la distance de r flexion d un objet 79 braq aze COMTE ae E asua A n n waa maaa eS RAE 87 Braquage UII P C a a 87 Braiquas lon RO een in en eases 87 Mesures des roues du robot mobile i re o ee 89 INTRODUCTION Afin d int grer les concepts de la micro lectronique appliqu e vus en classe vous apprendrez d velopper les laboratoires propos s dans votre livre de cours 68HC12 Microcontroller Theory and Applications de Daniel J Pack et Steven F Barrett Ces laboratoires ont t ajust s au nouveau microcontr leur Motorola MC9S12C32 en utilisant l environnement convivial CodeWarrior IDE Integreted Development Environment V 4 5 de la compagnie FreeScale et adapt s aux robots mobiles d velopp s au d partement de g nie de la production automatis e pour ce cours Le microcontr leur MC9S12C32 a t choisi en fonction de ses nombreuses particularit s Il n est pas sp cialis une t che sp cifique et ses nombreuses caract ristiques le rendent des plus versatiles L
31. freescale com la version CW12 V4 5 exe disponible sur le site du cours est plus performante Fichier CWI12 VA S exe 320 791 Ko L environnement a besoin d un grand nombre d informations pour orchestrer tous vos besoins Un projet consiste donc informer l environnement de d veloppement de vos pr f rences On doit y sp cifier le langage utilis vos pr f rences d dition le type de microcontr leur utilis les diff rentes commandes de pr et post chargement pour les points de d part du programme et l installation de composantes lectroniques virtuelles les adresses de t l chargement pour le code et le data etc Pour cr er un projet dans l environnement de CodeWarrior Cliquez sur File New Metrowerks CodeWarrior BE GI Edit View Search Project Debug Processor Expert Window Help RE avin 6h m B Open Ctro Find and Open File Ctri D Close THRA THS v HShift s Revert Open Workspace Ciose Workspace Save Workspace Save Workspace As Import Project Export Project Page Setup Print tri P Open Recent Figure 7 Ouverture d un projet 10 Choisissez l option HC s 12 New Project Wizard Donnez un nom votre nouveau projet dans la ligne Project name exemple projet1 et stipuler le chemin d acc s complet de votre sous r pertoire priv dans la ligne Location exemple F GPA770 labol puis cliquez OK Project File O
32. la barre d outils 45 L insertion de points d arr ts peut se faire de deux fa ons une avec le mode commande et une autre avec la souris Premi rement avec le mode commande on tape dans la fen tre de commande BS suivi de l adresse rejoindre Ex BS xxxx o xxxx est l adresse de ReChar1 ou de son tiquette sachant qu une tiquette est synonyme d une adresse Ex BS ReCharl Deuxi mement avec la souris naviguer dans une des fen tres de code et cliquez sur une instruction avec le bouton droit de la souris et s lectionner Set Break Point Un signet rouge apparaitra devant l instruction Apr s un GO le programme s ex cutera de sa position d arr t ligne en bleu jusqu au premier point d arr t rencontr F GPA770 labol projet Sbin tp1 dbg ORG ROMStart Entry permettre les interruptions LDS 1000 initialisation de la pile au haut le de ls RAM 0800 0FFF PLLGGDUDLGDGLEDLLGDLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL LLL A AR RAR RAR ARR VAR00001 16384 int Compt 6 unsigned char Figure 28 Insertion d un point d arr t Enfin pour enlever un des points d arr t on tape la commande BC dans la fen tre de commande Ex BC xxxx o xxxx est l adresse de ReCharl Ou avec le bouton droit de la souris sur le signet en s lectionnant Delete Breakpoint L interaction bidirectionnelle des fen tres du d vermineur monitorise et conditionne l tat de votre programme On peut
33. like format Write a string to a file using fprintf like format Changes or displays the default number base for the value of expressions Lists also global variables and procedures of the loaded application Loads of Motorola S records from a specified file Saves a specified block of memory to a specified file in Motorola S record format Displays a modal message box for testing purpose Displays a modal message box with a given string Loads the I O register descriptions from a register file Sets the base address of the on chip I O registers Defines a symbol and associates a value Removes a symbol definition Terminates the current command processing level Goes to the line folLoining the label Goes to the line folLoining the label if condition is TRUE Executes commands as long as the condition is true Executes commands up to a predefined number of times Executes commands until a certain condition is true Executes different command sections depending on the conditions Assignes a component as the destination for all subsequent commands Waits by time tenths of a second Executes the next command at time in ms Executes commands in the specified command file Executes commands in the specified command file Highlights the statement corresponding to the code address Highlights the statements corresponding to the code address range Loads the corresponding module s source text Highlights the statement of the procedure that is in the
34. mc9s12c32 inc nomenclature des registres 22 1 3 1 7 Fichier D BUGI2M M AQ u tea APO ee ee Ue BERN e 24 fl Sides Fichier D BUGIM ASM ee A sana l A SQ L see te e Au 26 1 1 4 Compl ment pour votre environnement 30 Ll4l ELatabulation use itte ean he eet I ELO CO e VU AUT a 1 ARG tin 30 I2 egeat Stasera va QU SIM pP e fox usa dnd cam aaah 30 1155 Essarde T environnemelit a sse Nn een nee ce 34 Li Edna s una ama aaa suasana A is Kus ua das I askhas ss 35 1 177 G OmpIHatIofl rr 38 KiS T l eehapeementu ses anon kas uQ Q m a taw Q aa S u atas 40 1 1 8 1 Connexion virtuelle Simulator 40 1 1 8 2 Connexion r elle SOfT ec 40 1 1 8 3 T l chargement vers la connexion choisie 40 l5 4 BDOVOTITIDASG TS orta A Se bu b ea dne 43 1 1 8 5 D placement dans le programme a rapa dac do epe doen ocn pe ve dt 44 122 LABORATOIRE 1b Programme simple avec branchements de base 48 1 2 1 Simulation de la lecture de capteurs infrarouges 48 13 LABORATOIRE 1c Sous routines et passage de paramtres 49 1 3 1 Passage de param tres par valeurs et par r f rences 49 1 3 2 Simulation du contr le de deux moteurs DC 49 14 LABORATOIRE 1d Sous routines
35. moire 0802 est plus grande que la valeur seuil soustraire 10 de cette valeur et d poser le r sultat de la soustraction cette m me adresse m moire 48 1 3 LABORATOIRE 1c Sous routines et passage de param tres Ce laboratoire vous fournit l occasion d utiliser des sous routines avec les techniques de passage des param tres par valeurs et par r f rences Le programme r sultant pourra avec quelques modifications tre utilis dans le laboratoire final pour contr ler le couple des moteurs DC du robot 1 3 1 Passage de param tres par valeurs et par r f rences La technique de passage de param tres par valeur utilise les registres A B X et Y du CPU pour passer une copie des valeurs originales aux sous routines appel es La technique de passage de param tres par r f rences fournit aux sous routines appel es les adresses de l endroit o r sident les valeurs originales dans la m moire ou bien l adresse de la premi re valeur originale dans le cas d un tableau de valeurs Lorsque le programme appelant doit conserver certaines informations avant de passer le contr le la sous routine appel e il peut soit conserver ces valeurs sur la pile ou soit les placer dans des adresses m moire Lorsque que la sous routine appel e doit modifier des registres du CPU et que ces registres ne sont pas retourn s l appelant elle peut les sauvegarder sur la pile au d but de la sous routine et les restituer avant le RTS
36. petits obstacles vous devrez mettre au point une routine de service d interruption pour les pare chocs Cette routine devrait 1 mettre le robot en marche arri re pour un temps donn et 2 braquer de X degr s avant de retourner en marche avant N B Les pare chocs sont branch s sur le port P PP2 et PP3 Il n existe qu un vecteur d interruption pour les huit broches du port P Votre routine de service pourra d terminer si elle en a besoin quelle broche a g n r e l interruption en interrogeant les drapeaux du port P 93 3 3 Rapport pour le laboratoire 3 3 3 1 Travail remettre et bar me de correction Pour ce dernier laboratoire vous devez 1 Remettre un rapport expliquant chaque tape de votre programme 15 Votre utilisation de la logique floue M thode de braquage M thode utilis si le robot est en but M thode d talonnage Particularit s et finesses Remettre un manuel d utilisateur 10 Remettre un imprim fonctionnel et tr s bien comment de votre programme LAB3b ASM 10 Faire une d monstration fonctionnelle des performances de votre robot mobile FoncHonmalite os u a uz a Qan s Vaya FOVERE ON Iove Coon 55 D monstratlom EP 10 N B Pour l imprim prenez soin d utiliser une police pas fixe COURRIER capable de reproduire la plus grande ligne de texte de vot
37. sentation globale des rapports 10 Pr sentation globale du code 6 Fin du laboratoire 1 59 2 LABORATOIRE 2 Exploitation en temps r el du mat riel et des ports d entr es sorties Le but de ce laboratoire est d exploiter des composantes de base en mode interrogation par le balayage de drapeaux ou en mode temps r el par des interruptions Vous utiliserez les ports d entr es sorties et le TIM Timer Interrupt Module Le premier permettra l utilisation des commutateurs disponibles sur la carte alors que le dernier servira la g n ration d un PWM Pulse Width Modulator pour le contr le de vitesse des moteurs du robot 60 2 1 LABORATOIRE 22a Interrogation d un bouton poussoir Ce laboratoire est congu pour vous permettre l tude et la mise en application d un port d entr es sorties avec la technique de mode interrogation pooling Cette technique consiste interroger de fa on it rative l tat d un p riph rique le plus souvent possible allant jusqu l interroger continuellement au travers une boucle d interrogation 1 Attendre au d but du programme qu un bouton poussoir soit pouss avec la technique d interrogation polling 2 Une fois le bouton pouss votre programme devra crire l cran un message d accuser r ception 2 1 1 Mode r el Vous devrez utiliser le commutateur PPO pr
38. terminal la valeur ascii du nombre hexad cimal aucune Out2hex pshb Sauvegarder b lsrb lsrb lsrb lsrb cmpb 0a bhs lettrel Si plus grand ou gal c est 37h chiffrel addb 30 traduire le quartet en ascii bra suitehexl lettrel addb 37 traduire le quartet en ascii suitehexl putchar envoyer premier caract re pulb on reprend b andb S0f garger la partie basse cmpb 0a bhs lettre2 Si plus grand ou gal c est 37h chiffre2 addb 30 traduire le quartet en ascii bra suitehex2 lettre2 addb 37 traduire le quartet en ascii 27 suitehex2 putchar envoyer premier caract re rts PRR k k KERR k k k k k ke k k k k k k Kk k k k k K ek koe R Ok KOK OK K KOK K K ek ko K KOR KOK KOK KOK KOK R R RK OR ke e sk Routines jout4hex Entr e registre d contient le code hexad cimal T che transmettre un terminal la valeur ascii Prod du nombre hexad cimal Sortie aucune T d PARKER AREA k k k k k k k k k k k k Kk k EK koe ke K K KOR K K KOK KOK KOK KOR KOK KOR K ko K KOK KOK KOR RK ke ke K R K Out4hex pshd sauvegarde de d tab faire partie haut jsr Out2hex puld recup rer partie basse jsr Out2hex faire partie bass rts Ck K k x k k lt K k lt k k K K lt K k kk lt K x x lt k K K x x k k K kk lt k X lt k k kk ck k k Sk k Sk k k k k ko ko ko X lt XX
39. 0 84 50 1 745 328 47 355 03 21 7 7030 84 70 1 758 329 24 354 19 21 7 7080 85 00 1 770 330 41 352 94 21 6 7130 86 00 1 783 334 30 348 84 21 3 7180 86 70 1 795 337 02 346 02 21 2 7230 86 40 1 808 335 85 347 22 21 2 7280 87 70 1 820 340 90 342 08 20 9 7330 89 00 1 833 345 96 337 08 20 6 7380 89 10 1 845 346 35 336 70 20 6 7430 90 00 1 858 349 85 333 33 20 4 7480 90 00 1 870 349 85 333 33 20 4 7530 90 00 1 883 349 85 333 33 20 4 4 24mm a 175 58mm Figure 52 Mesures des roues du robot mobile 89 3 1 5 Exemple de calcul d un braquage court 3 1 3 1 Choix de la vitesse de braquage La force des moteurs est tel qu elle permet de choisir une des vitesses du tableau pr c dent sans gard la vitesse actuelle du moteur Autrement dit vous pouvez passer du maximum de la vitesse arri re au maximum de la vitesse avant essayez quand m me de rester doux Une vitesse de rotation de 90 degr s d environ 0 6 0 7 secondes semble raisonnable Dans cet exemple nous voulons un braquage court il s agit donc de trouver le braquage moyen correspondant dans le tableau 5 3 1 4 Calcul de l angle de braquage Pour l exemple nous avons choisi une vitesse de rotation de 90 degr s en 1 39535 seconde en braquage moyen Ceci donnera en braquage court un temps de rotation de 90 degr s en 0 698 seconde Comme le montre le tableau 5 la dur e requise des OC3 et OC2 pour une vitesse de braquage moyen est de 1 558 ms Pour g n rer ce
40. 1 2 Fichier Main asm Situ dans le sous r pertoire projet1 Sources ce fichier a t cr par votre projet Il s agit d un exemple de programme de d part fonctionnel compatible l environnement de d veloppement demand Ce code contient la structure de d part minimum pour vos programmes Cette structure l aide de directives de compilation en gras d finie le point d entr e de votre programme l adresse de d part du data l adresse de d part du code g n re un petit code test qui sera remplac par votre propre code et finalement initialise le vecteur d interruption de la remise z ro RESET au point d entr e du programme Fichier Main asm k k k k koe k k k k k k k k k k k k k k k k k k k ke k K ke ke k k k ke K k k K e ke ke k k K KOR K ke ke K OR K KOR k KK k ke KK This stationery serves as the framework for a X user application single file absolute assembly application For a more comprehensive program that K demonstrates the more advanced functionality of this processor please see the demonstration applications located in the examples subdirectory of the Freescale CodeWarrior for the HC12 Program directory k k k k EEK k k k k k AK k k k k k k k k k k k k k k Kk k k k k k k Kk k k k k k k Kk k k k k k k k k k k k k k Kk k k k k ck K K export symbols XDEF Entry export Entry symbol ABSENTRY Entry for absolute assembly mark this as application entry point
41. 40 40 40 40 Ouverture d un terminal de communication la location de l cran 40x 40y et de taille 40X40 pixels OPEN IO LED Ouverture d un afficheur compos de huit DELs PORT 1 Branchement des DELs sur le PORTB du microcontr leur l adresse 0x0001 DDR 3 Branchement des DELs au registre de direction Data Direction Register du PORTB l adresse 0x0003 Pour automatiser ces commandes chacun des t l chargements de votre programme il suffit de les placer dans le fichier Full Chip Simulation SetCPU cmd comme suit Fichier Full Chip Simulation SetCPU cmd At startup the commands written below will be executed OPEN Terminal 40 40 40 40 OPEN IO LED PORT 1 DDR 3 20 Une fois votre programme crit compil et d vermin en mode Full Chip Simulation les fen tres IO Led et Terminal s afficheront et se brancheront automatiquement votre environnement d s l amorce de votre programme olem gt e e gt e B Source 1 D Assembly 40D6 DBNE eaoooolie et B sont sauver 40D9 PULD 40DA RTS PORT 00 DDR FF app rsHA 40DC LDAA OxCC 40DE ANDA 32 40E0 BEQ 4 abs 40DC A A EERE zl Register PP HC12 CPU Cycles 38417900 S 1 Te 2 Terminal OX Bienvenue Ipolyphi dbg temp byte caractere B Phrase BienvenueVrZZZZZ22222222222ZZZZZZZZZZZZZZZ7 jaetchar jputchar jprintf es ial Command done cmd simulator po
42. BIe ASM ainsi qu un imprim de votre rapport N B Pour l imprim prenez soin d utiliser une police pas fixe COURRIER capable de reproduire la plus grande ligne de texte de votre programme sur une seule ligne de l imprim L impression en mode paysage est accept e 2 Une copie sur MOODLE de vos programmes LABIb ASM LABId ASM et LABIe ASM ainsi que de votre rapport docx 1 6 2 Bar me de correction Programmes a b Fonctionnalit incluant une pr sentation orale au charg de TPs 15 Code structur et commentalres 5 lcd T sa si 8 Introduction 1 ObjJectifs 1 M thodes 3 Discussion 2 Conclusion 1 Programmes c d Fonctionnalit incluant une pr sentation orale au charg de TPs 15 Code structur et commentalIres 5 Rapporto dee ro vut uen ana ap ep Em eg ap aa 8 Introduction 1 Objectifs 1 M thodes 3 Discussion 2 Conclusion 1 58 Programme e Fonctionnalit incluant une pr sentation orale au charg de TPs 15 Code structur et commentaltres 5 RAD DORE cid ERE 8 Introduction 196 ObjJectifs 1 M thodes 3 Discussion 2 Conclusion 196 Pr
43. E wu Q rw 0 RQ D p E DEL 105 Appendice F Circuits lectriques de la carte HCS12 STARTER KIT 106 dy 4894S 89 3 000vd V AS 13534 EMS I A 91 0090 NOW ZE 9ZLSOH Hd NAZEITLSEI Gpeoods Al SSA SSA SSA 2 z les g OC ONMIHO VLG NE dd 1831 TA Hal J0NvIZ0QVd SONWI900Wd SONVISOOWd TONVIFOQVd SoNVI OQVd VONVICOQVd IONV 100yd CONW O0dWd J90l 21d 00l 91d S50 S1d4 vidivoOUtLd Md DOUEL d ZMdZIOWZL d HdfLOOW LL d OMA ODOVOLA Esd ZSd axlilsd Qxsl osd 2d Wedd TOW 08 94 MW9d d SMA Sd M S dd PMA PAM Ydd SMA EAM Edd ZM ZAMS LAN Ld Ldd OMON Odd PRUVI SPAS d WOO OJOIUJOSOS MAM SNId 1VN9IS II deg 019 T i o r o 13834 XOSI9Nd IS0WyWd SSIEMId OSIW2Wd NYOXLWId NYOXION S319X709V0N 23d COW ladld 93d_ o Fa OO0000000 xi99oooopoo ot 4 AS 13S34 SSA 125 SA CA 6t E TID ri a RS Yd L 2 it 900vd vaoW o3dldl 93d v S0 vd 3 5o ETS Ford AS N193 3d 841LSW 0719v1L 23d Maa 04l 13d 03DQ03d M00v uy1vqi284 Sa Qvisvivarmgd Sa QvisvIvaisgd YeldavitvIvarrad 30a0vi ev1v0 ad caavievivarcad Aaw LYA ad Od QQv ovIvarogd SLYS IQQvi vd vINLVO T QI vd IIVO OWS CINIVOI COW rd LYLY LISIQQV EVd OINLVQ 0 IHAA ZYd evI
44. ES D r A s ay i Pc 4000 PPAGE tpl dbg i sp o CCR SXHINZVC VAROOOO1 16384 int Compt 6 unsigned char caractere 64 unsigned char jgetchar 16563 int jputchar 16574 int jprintf 16650 int Procedure joutZhex 16588 int Command After reset the commands written below will be executed fes Memory done cmd SofTec_inDART HC 12_reset cmd T LASS Reset command file correctly executed 000080 00 00 00 20 05 00 00 00 User RESET fooooss 80 00 00 00 00 00 00 FF 000090 00 00 00 00 DO 00 00 00 in 000098 00 00 00 00 00 00 00 OD m 0000A0 00 00 00 00 00 00 00 DO Execute one source instruction Automatic triggers breakpoints watchp and trace possible MC9S12C32 User RESET i Figure 26 Interaction du d vermineur Apr s l ex cution de cette instruction on remarque que les registres CCR et IP de la fen tre Register sont pass s de SXHINZVC SXHINZVC et de 4000 4002 refl tant ainsi le 44 nouvel tat du microcontr leur qui a mis z ro le bit I du CCR et qui est pr t ex cuter la prochaine instruction l adresse 4002 Vous venez d exp rimenter une des trois principales facons de se d placer dans un programme le pas pas Une deuxi me fa on de se d placer est d ex cuter le code tant que l on ne rencontre pas une instruction donn e Naviguez dans une des fen tres de code et cliquez sur une instruction avec le bouton gauche de la souris Cliquer une deuxi me foi
45. HC vl P 4 Debugger Cmd Files SES Simulator i PB Simulator Statu Remove Object Code Ctrh 4 BB Simulator Reset Re search for Files Bl Simulator Prelos 2 BI Simulator Pasta Reset Project Entry Paths 1 Pn Simulator SetCF Synchronize Modification Dates ji EHG3SofTec inDART HC RW Soffec_inDART Debug FS d AB SofTec_inDART p Cire hk AM Soffec_inDART H gen SofTec inDART settee noant Set Default Project Fus Set Default Target e l0 nee TEM Figure 19 Menu Projet Compile Make et Debug Pour compiler la fen tre active cliquer sur Projet Compile Ctrl F7 ou cliquer sur l ic ne Compile Processor Expert Window Help AWAKE m EE Compile tp1 asm b 0 n XCXOOXOGOXOCX3E Figure 20 Compile 38 Pour tout recompiler vos programmes sources cliquer sur Projet Make F7 ou cliquer sur l ic ne Make Debug Processor Expert Window Figure 21 Make Avant de lancer le d vermineur Debug il faut indiquer la connexion vers laquelle le d vermineur t l chargera et d verminera votre programme dans votre environnement Vous avez pr alablement install deux types de connexions une connexion en mode simulation du microcontr leur Simulator et une connexion via le bus USB en mode r el de t l chargement et de d verminage du microcontr leur SofTec File Edit view Search Project Debug Processor Expert Wind Bae m o lt x x P amp ET LT six projet mep
46. OK kc kk KOK KK kc KOR KOK heck KOK K K KOR K K ec ke kc kc ke KOK K K K R KKK pOCKCKCk Ck ER k k k k k k k k k k k k k k K k K k K K K K KOR KOK KOK K OK K K KOK KOK KOK K KOK K KOK K K KOR K K RUR KOK R K KOR KOR e he R K K Je D but du code dans la section CODE SECTION Xx Sk PE PARK RARE KR KR EK k k k k k k k k kk k k K k K K Sek K KOK K KK KK K KOK OK R UHR heck khe KOR KOK K K KOR OK KOK K KOK K OK KOR R K R PARK k 1k 1k k k 1k k k k Kk k k k k k k k k k kk k k KOK K K ek OK K K K KK KOK K K KOK KOR K KOK KOR oR KO RO K R R ke KOK K KOK K K K KEK KKK ORG ROMStart Entry CLI permettre les interruptions LDSS 1000 initialisation de la pileau haut de ls RAM 0800 SOFFF PARKER EEK KR k k k k k k k Kk k k kk k k k k K K ec ke K K K K K KOK K K KOK OK RO koe RK ke k R KOR K KOR ke RK OK OK K KOK K K R R R R e Init portb en sortie LDAB Sff 1 sortie STAB DDRB PARKER EEK k k k k k k k k k k k k k k koe k k K ke K K ek koe KOK KOK KOK kk ko OK KOR ke ke kk KOK K R KOR koc kk KOK KOK KOK K K KOR KKK Init du SCI transmetteur et r cepteur de caract res s riel CLR SCIBDH LDAB 34 Si bus clk est 8MHz STAB SCIBDL 9600 BAUDS CLR SCICRA M BIT 0 POUR 8 BITS LDAB 0C STAB SCICR2 z TE RE pOCECKCk ER KERR ERK k k k k k k k k kk k k k k K K heck K K hock K UK K K K K KOK R k kc KOK KOK K K KOR K K KOK ke heck KOK K K KEK RK K partir d
47. R directionnelle et un capteur focal de lumi re IR r fl chie associ puls 40ms La sortie en voltage des capteurs est branch e trois diff rents canaux du convertisseur analogique num rique A D du port PORTAD du 68HCS12 Plus la 6 PACK Daniel J et BARRETT Steven F 68HC12 MICROCONTROLLER THEORY AND APPLICATIONS Prentice Hall 2002 pages 158 163 54 grandeur focal capt e par les convertisseurs A Ds est au foyer plus la proximit d un obstacle est forte et vice versa Capteur infrarouge Sharp GP2YO0A21YK Distance de d tection 10 80 cm Distance cm Voltage mV Infinie 250 90 360 80 380 70 420 60 500 50 600 40 880 30 900 20 1400 10 2000 Tableau 1 Distances des obstacles vs voltages lus par les capteurs Chaque convertisseur poss de une m moire RAM de 8 bits pour stocker une valeur de voltage non sign e comprise entre 00 et SFF Nous tablirons plus tard une corr lation entre les voltages du tableau pr c dant et les valeurs de voltages de 00 FF utilis es par le contr leur flou Pour l instant nous simulerons ces valeurs de voltages en m moire RAM 1 5 1 1 Nombres de variables requises et attribution des noms Nous avons trois variables pour les voltages d entr es de chaque capteur Vcapt droit Vcapt centre Vcapt gauche En utilisant les trois fonctions d appartenance d entr e du graphique suivant pour chacun des capteurs IRs nous obtenons neuf variables pour les degr s
48. RSION BRCLR ATDSTATO 80 CONVERSION Cette ligne de code va brancher sur elle m me tant et aussi longtemps que les bits qui sont a 1 dans le masque ici 80 pour le bit SCF sont 0 dans l adresse stipul e ici ATDSTATO Num risation des IRs et affichage A partir du laboratoire 2b vous devez cr er une boucle sans fin de num risation des trois valeurs de voltages des capteurs Cette boucle devra 1 2 3 4 5 Commander une num risation Tester le bit SCF Sauvegarder les r sultats dans trois octets de m moires valeur gauche valeur centre et valeur droite en ram Attendre 0 5 seconde Afficher sur l afficheur LCD en mode r el ces trois valeurs S il n y a pas de LCD disponible pour faire vos tests afficher vos r sultats l cran avec les fonctions DBUGI2 XX YY ZZ O XX est la valeur hexad cimale du voltage du capteur gauche YY est la valeur hexad cimale du voltage du capteur central et ZZ la valeur hexad cimale du voltage du capteur droit 81 N B Pour remettre le pointeur de caract re de l afficheur LCD au d but de la ligne vous devez envoyer la fonction 4 02 Return Home l afficheur et attendre un d lai de 4 ms avant d y afficher de nouveaux caract res 82 2 5 Rapport pour le laboratoire 2 2 5 1 Travail remettre Pour ce deuxi me laboratoire vous devez remettre Un imprim fonctionnel et tr s bien comment de vos programmes LAB2b ASM LAB2c ASM e
49. Universite du Qu bec IJ Ecole de technologie sup rieure D PARTEMENT DE G NIE DE LA PRODUCTION AUTOMATIS E MICRO LECTRONIQUE APPLIQU E GPA 770 Cahier de laboratoires Maurice Tremblay ric Granger Dominique Grenier R daction MT D cembre 2004 R vision d cembre 2014 Table des Mati res INTRODUC BION jicscssedectsisvsisvsdvacescaabasavesaesccdesssseneedsesaassdensssstsnaVasdeesdievcessseossesete 1 1 LABORATOIRE 1 Programmation assembleur du 68HCS12 3 11 LABORATOIRE 71a Mise en place et essai de l environnement de d veloppement 4 1 1 1 Mise en place de l environnement de d veloppement 4 1 1 2 Installation d un mulateur de terminal VT100 Virtual Terminal 100 5 1 1 3 Ouverture d un projet dans CodeWarrior HC S 12 IDE 9 1 1 3 1 Description des fichiers du projet 15 LS PAT FichiereReadm txteu Sates cae cep Ne e Cetus ERE daa maman aao t odds 15 1 1 3 1 2 Fichier MOICASEW uuu asnan a ors e oe ate unas aaa YU 16 113153 Fichier DUTCH bbl d ci to escultor tod cite Sua tese ec e 17 1 1 3 1 4 Fichier Simulateur ini et fichier SofTec ini ee eee eececeseceeecseceeeeeeeeeeees 18 1 1 3 1 5 Fichiers cmd de commandes pour le d vermineur 19 1 1 3 1 6 Fichier
50. XP Cet mulateur utilise un port de communication s riel programmable COMI COMS disponible sur le PC Une fois l mulateur de terminal programm et branch au port de communication s riel du microcontr leur vous pourrez recevoir et transmettre des caract res ASCII entre le PC et le microcontr leur Des routines de r ceptions et de transmissions de caract res ASCII vous seront fournies cet effet Pour se faire cr ez une nouvelle connexion en activant le programme hypertrm exe HyperTerminal dans D marrer Ex cuter Ex cuter 77 Entrez le nom d un programme dossier document ou d une ressource Internet et Windows l ouvrira pour vous Ouvrir Annuler Parcourir Figure 2 D marrer ex cuter Voir la table de caract res ASCII Appendice E Une fois activ dans Description de la connexion donnez un nom votre connexion assignez lui une ic ne et cliquez OK Description de la connexion AP Nouvelle connexion Entrez un nom et choisissez une ic ne pour la connexion Nom ComHCS12 Ic ne mosses CX Ce Figure 3 Description de la connexion Une fois fait la fen tre Num ro de t l phone s affiche Sous Connecter en utilisant choisissez le port de communication branch au microcontr leur soit COMI COMS puis cliquez OK Connexion D ComHC512 Entrez les d tails du num ro de t l phone que vous voulez composer Pays r gion Canada 1
51. age carriage return shift out shift in data link escape device control 1 device control 2 device control 3 device control 4 negative acknowledge synchronous idle end of trans block cancel end of medium substitute escape file separator group separator record separator unit separator 128 14 122 14 130 146 E 131 1 4 132 14 6 133 14 134 150 135 151 136 152 _ 137 13 138 154 139 i 156 10 i 157 X 141 d Du Y 142 19 f 143 192 L 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 Appendice E sur votre clavier et le code dec 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 E 1 1 1 T 1 1 7 1 1 J i o oc i0 lt J O Gn h G S F gt O 0 V Nl A ve 204 Ird F Tm IF al I k s E 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 C Fam r FAA Be H 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 gt g D W RDA MA 1 8 D B RUE D PE F G H ENT J K L M N 0 DP Q DR 8 T SU v DW x Y z 7 PO e A 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 N amp 126 amp 127 t ww N X g lt ct uu Fm Q C O
52. annel Select Code DJM Result Register Data Justification et MULT Multi Channel Sample Mode du registre de contr le no 5 du convertisseur A N ATDCTLS ATD Control Register 5 devront tre 1 Les bits CA CB et CC d terminent le canal de d part d une s quence de conversion Comme vous devez convertir les canaux 1 2 et 3 il faut d buter la s quence sur le canal no 1 Attention les r sultats des conversions des canaux 1 2 et 3 seront stock s dans les registres de r sultats ATDDROL ATDDRIL et ATDDR2L Right Justified ATD Conversion Result Register Low Byte Les r sultats des s quences de conversion commencent toujours ATDDRO et non au num ro de canal du d but de la s quence 80 2 42 N B Le fait d crire dans le registre ATDCTLS commande une conversion ou une s quence de conversion Ici vous commandez une conversion A N sur trois canaux partir du canal 1 Cette conversion se fera 2MHz avec un temps de chargement des Sample and Hold de 2 coups d horloge Une fois accomplie apr s 15 ps les r ponses seront disponibles en 8 bits dans les registres de r sultats ATDDROL ATDDRIL et ATDDR2L Interroger le bit SCF Sequence Complete Flag du registre de statut 0 du convertisseur A N ATDSTATO ATD Status Register 0 Pour savoir si la conversion des trois canaux est termin e Le bit SCF indiquera 1 quand la conversion sera termin e Vous pouvez utiliser le code suivant pour tester ce bit CONVE
53. apprentissage de ce microcontr leur vous permettra de ma triser facilement l ensemble des microcontr leurs que l on retrouve aujourd hui sur le march Orchestr par un micro ordinateur de 16 bits HCS12 ce microcontr leur poss de une m moire interne volatile RAM de 2048 octets pour stoker les variables ainsi qu une m moire interne non volatile Flash EEPROM de 32768 octets pour stoker les constantes et le s programme s Gr ce ses nombreux modules internes ce microcontr leur peut avec le s 1 SCI Serial Communications Interface transmettre de fa on asynchrone des caract res ASCII American Standard Code for Information Interchange 2 SPI Serial Peripheral Interface interfacer des p riph riques synchrones 3 TIM Timer Module contr ler 8 horloges programmables pour la capture d entr es ou la comparaison de sorties un accumulateur d impulsion de 16 bits des compteurs d v nements externes compter le temps entre des v nements externes pr d clench s 4 PWM Pulse Width Modulator contr ler la dur e d une impulsion sur 6 canaux de sorties 5 ADC Analog to Digital Converter traiter num riquement des signaux analogiques externes 6 I O Input Output disponibles pour chacun des modules traiter les informations num riques en entr e comme en sortie 7 BDM Background Debugging Module se mettre en arri re plan et activer son d vermineur interne De plus il est le premier tre dot
54. bject iB Empty Project Project name f HC S 12 New Project Wizard projet 88 HCS12 Stationery Location FAGPA770 abot projetl Set rT Addio Project Project zl Figure 8 Chemin complet et nom du projet Choisissez le microcontr leur utilis au laboratoire MC9S12C32 et cliquez suivant New Project Wizard Page 1 Select the derivative you would like to use Derivatives MC9512A128B MC9S124256B MC9S12DB1284 MCOS12DB128B MC9S12DG128B MC9S12DG256B metrowerks MC9512DJ128B Software Storte Here E ses Pr c dent Figure 9 Choix du type de microcontr leur utilis 11 S lectionnez le langage assembleur seulement et cliquez suivant New Project Wizard Page 2 Please choose the set of languages to be supported initially You can make multiple selections initialisation of global variables metrowerks Software Storte Here Figure 10 Choix du langage de programmation S lectionnez le model d adresse absolue pour le langage assembleur New Project Wizard Page 3 Which kind of assembly would you like Absolute Assembly Relocatable Assembly sing only one single assembly source file ith absolute assembly No support for relocatable assembly or linker metrowerks Bo oftware fiterte Here Figure 11 Choix du model de m moire S lectionnez les connexions pour le t l chargement et le d verminage Le Full Chip Simulator
55. connectera le devermineur un microcontr leur virtuel alors que le SofTec HCS12 connectera le devermineur la carte d valuation PK HCS12C32 par le port USB du PC Cliquez sur terminer quand les choix sont faits New Project Wizard Page 5 W E Please choose the connections you want You can SofTec HCS12_ Abatron BDI TJHCS12 Serial Monitor to any of the USB based SofTec systems tools for HCS12 nDART 12 etc freescale Pr c dent Teminer Amwe Figure 12 Choix des connexions pour le d vermineur En cliquant sur Terminer votre projet est cr et sauvegard dans votre compte Il est d s lors actif et peut tre rappel par le logiciel CodeWarrior en tout temps en double cliquant le fichier projet1 mcp situ dans le sous r pertoire projet1 de votre compte Le projet a mis en place l environnement de d veloppement en cr ant plusieurs fichiers dans des sous r pertoires sp cialis s dans votre compte comme le montre la figure 14 Pour faire une copie de s curit de votre projet vous devrez sauver toute l arborescence du projet1 a 6 DISK1PARTO3 F a GPA770 a laboi a projeti bin cmd prm a projeti Data amp B Simulator SofTec inDART HCS12 C3 Sources Figure 13 Sous r pertoires cr s par le projet 13 Les sous r pertoires ainsi form s par le projet apparaissent dans CodeWarrior comme le montre la figure 15 I
56. d entr es sorties D BUG12M 52 15 LABORATOIRE 71e Contr leur logique flou avec les instructions du HCS12 54 1 5 1 Contr le de direction d un robot de voles Re 54 1 5 1 1 Nombres de variables requises et attribution des noms 55 1 5 1 2 D veloppement des r gles du contr leur flou 56 1 5 1 3 Affichage des r sultats du contr leur flou 57 1 6 Rapport pour le laboratoire 1 58 Los Trava a remettre ertet eee eoe testet duele e ede Res LS 58 1 6 2 Bar me de correction U L L ASI hehe eene NAS La DS u As 58 2 LABORATOIRE 2 Exploitation en temps r el du mat riel et des ports nisus iai tr M 60 2 1 LABORATOIRE 72a Interrogation d un bouton poussoir 61 ZU VMOdedeeb iust eue MED Re Ht e mutis 61 Z4 Mode SI 3U OT a u naa RCE SR SE Au hun T E otro edo ot Ee EU 62 2 1 3 Mode simulation et r el iiec eee d v a e iei COR a Pe ON eure dns 62 2 2 LABORATOIRE 2b ES afficheur LCD et interruptions externes 64 Ded ahs n PROCS OUI SR AR nee aa dns autos ew Basa 64 222 Mode SiO a D RS D SSS SARA S Ef cn 65 22 32 MOT tnt ner ns Tests lies 69 2 3 LABORATOIRE 2c Modulation de la dur e d impulsions 71 2 35 I
57. de tete deca stet ta bcd en 12 Figure 12 Choix des connexions pour le d vermineur eene 13 Figure 13 Sous r pertoires cr s par le projet iiie Id e parie ede sans 13 Figure 14 Repr sentation du projet dans le logiciel CodeWarrlior 14 Figure 15 Connexions virtuelles de 8 DELs I O Led et d un terminal Terminal 21 Figure 16 Mise en place de la tabulation seins 30 Figure 17 Cr ation d un fichier lst pour l assembleur en mode connexion au simulateur 31 Figure 18 Cr ation d un fichier lst pour l assembleur en mode connexion la carte 31 Figure 19 Menu Projet Compile Make et Debug sese 38 Fisure 20 Compile s n A uscite oie be a nG t totu uoce o oss cit etes 38 lap CAU CPP oe ERE 39 Figure 22 Choix de la connexion pour le d vermineur eee 39 Figure 23 Debut asa a tti aus an ede tics uu a Made 40 Figure 24 Erreurs et mises en gardes ede opea De ed e te Re Urea sente ire 41 Figure 25 Devermineur oo AH SS US S SASS A TU u ek 43 Figure 26 Interaction du d vermineur die i Ban ie eae uta dde 44 Figure 27 Ex cuter le code jusqu cette ligne usi e tse RR Se osa ve ira rane 45 Figure 28 Insertion d un point d arr t en e erai p En NO
58. des chiffres hexad cimal en caract re ascii pour les afficher sur le terminal 4 active un compteur binaire et affiche ce compteur sur les huit DELs branch es au port d entr e sortie B du microcontr leur Vous apprendrez bient t avec le langage assembleur comment programmer et utiliser les diff rents modules comme le SCI ainsi que les diff rents ports d entr es sorties du microcontr leur comme le port B A cette tape il n est pas n cessaire de comprendre comment fonctionne ce programme 34 1 1 6 dition Pour un premier contact avec l diteur sauvegardez le fichier MAIN ASM en LABIA ASM et modifiez le comme dans l exemple suivant Exemple d un programme classique de bienvenu en assembleur k k k k k k 1k k k k k k k k k k k k k k k k k k k ke K K K ke KOK KOK KOK K K KK KOK KOR OK K EK khe K K KOR K ke ke K OK K ke K ke KOR KOR R K R Auteur Maurice Tremblay Date avril 2007 Ce programme 1 affiche un message de bienvenue par une transmission s rielle de caract res du microcontr leur port SCI vers le port de communication COM1 d un ordinateur personnel en mulation de terminal VT100 P Sk pe um re oit des caract res partir d un clavier 3 traduit des chiffres hexad cimal en caract re ascii pour les afficher sur le terminal
59. du microcontr leur port SCI vers le port de communication COMI d un ordinateur personnel en mulation de terminal FF YF X VT100 2 re oit des caract res partir d un clavier 3 traduit des chiffres hexad cimal en caract re ascii pour les afficher sur le terminal 4 active un compteur binaire sur les DELs branch es sur le port B x ck k k k k k k k k k k k k k k k ck k Sk k k k ck k k ck k k k k k k k k k k k kk k k k k k k k k k k k k k k k k k k k k k k k k k k kk k k k k ok Point d entr e du programme ABSFNTRY Entry point d entr e pour adressage absolu ReCharl lecture du clavier getchar Jer jgetchar pcr retourne le caract re dans le registre b CMPB S0d si crlf fin de lecture BFQ Mesi putchar charg dans b JSE jputchar pcr le caract re transmis est retourn dans b BRA ReChar1 faire un cho Message dc b Bienvenue au laboratoire de micro lectronique 0A 0D dc b appliqu e 0A 5 0D 00 END 42 1 1 8 4 D verminage l amorce le d vermineur de FreeScale ouvre ses multiples fen tres et ex cute les fichiers de commandes CMD vus plus t t de votre projet Vous pouvez voir dans la fen tre d tat du bas Command se d rouler l ex cution des commandes incluses dans les fichiers CMD Ces commandes ont les fonctions suivantes 1 conditionnent et t l chargent le fichier S 19 au microcontr leur dans sa m moire FLASH 2 chargent le
60. e de votre projet Vous devez le copier dans votre sous r pertoire projet1 Sources PRE k EEK 1k k k k k k KER KKK k k k k k k k k K K RK K K KK KK KK KR KER KKK KEK KKK R KOR KK EK KE RK KOK K K R R KKK getchar macro jsr endm putchar macro jsr endm out2hex macro ldab jsr D finition de macros pour des appels simples en assembleur Auteur Maurice Tremblay x lt a e Date ao t 2004 ae K Fontions getchar kkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkxkkkxkxkkxkkxkxkxkkxkkxkxkkkxkxkxkxkkxkxkkxkxkkxkxkxkxkkxkxkxkkxkkxkxkxkxkxkkxkxkkkxkxkxk putchar out2hex out4hex printf jgetchar pcr retourne le caract re dans le registre b l argument est le caract re ascii transmettre charg dans b jputchar pcr le caract re transmis est retourn dans b NE l argument est un octet en hex charg l argument dans b jout2hex pcr envoyer l octet en ascii au terminal 24 out4hex printf endm macro ldd jsr endm macro ldd jsr endm N1 jout4hex pcr 1 jprintf pcr l argument est un mot en hex charg l argument dans bd nvoyer le mot en ascii au terminal l argument est l adresse de d part charg l argument dans d envoyer la phrase au terminal 25 1 1 3 1 8 Fichier D BUGI2M ASM Fichier d mulation maison de quelques unes des fonctions de D BUGI2 de Motorola en
61. e fera quand le compteur programmable de 16 bits TC2 et TC3 du registre associ aux OCn galera le compte du compteur TCNT 73 L activation ou la d sactivation des broches sur une galit de leur compteur TC2 et TC3 au compteur TCNT se fait gr ce au registre TCTL1 et TCTL2 Ces deux registres permettent de stipuler un mode de sortie OMn output mode et un niveau de sortie OLn output level pour chaque broche pr alablement programm e en OCn comme le montre le tableau 3 OMn OLn Configuration de la sortie des broches 00 Horloge d branch 01 Inversion de la sortie existante 10 D sactiver la sortie 11 Activer la sortie Tableau 3 S lection des signaux de sorties des OCn 2 3 2 3 Captures des temps d entr es ICn Contrairement aux OCn les ICn s activent partir des broches en entr es PTO PT7 du 68HCS12 qui ont t programm es en ICn dans le registre TIOS Chaque changement d tat d une broche d entr e enregistrera le contenu du TCNT dans le registre de 16 bits TC2 et TC3 associ s pour calcul de temps ult rieur Le changement d tat des broches sur un front montant sur un front descendant ou sur les deux se programme avec le registre TCTL3 et TCTL4 Ces deux registres permettent de stipuler un mode d entr e EDGnB edgeB et EDGnA edgeA pour chaque broche pr alablement programm e en ICn comme le montre le tabeau 4 EDGnB EDGnA Configuration de d tection su
62. er for HC12 Importer for HC12 Linker for HC12 Simulink r Editor Custom Keywords Debugger DtherExecutables Command Line Arguments D HCS12 FA2 Configure Listing File Configure the address size in the Listing Do not print macro call in ist file Do not print macro definition in list fle Do not print macro expansion in list fle Do not print included files in list fle Obiect fle name specification enter file L Generate a listing file PATEXTPATHM nist D_HCS12 FA2 L TEXTPATH n lst OK Annuler Aide Figure 17 Cr ation d un fichier lst pour l assembleur en mode connexion au simulateur Pour une connexion la carte PK HCS12C32 en mode SofTec inDART HCSI12 dans CodeWarrior s lectionnez Project Set Default Target SofTec puis Edit SofTec Setting Dans la fen tre Simulator Setting cliquez sur Assembler for HC12 Cliquez sur le bouton Option puis s lectionnez Generate a listing file Soffec Settings Target Settings Panes f J E Target amp i Target Settings Access Paths Build Extras Runtime Settings File Mappings Source Trees Assembler for HC12 Bumer for HC12 cc Compiler for HC12 Importer for HC12 Output Command Line Arguments D HCS12 FA2 Custom Keywords Debugger Other Executables Debugger Settings
63. es fonction D BUG12 1 Envoyer un message au terminal VT100 2 Recevoir des caract res du clavier et en faire l cho sur le terminal jusqu la r ception du caract re crlf ENTER Main printf Messag envoyer un message de bienvenu ReCharl lecture du clavier getchar CMPB 0d si crlf fin de lecture BE Mesl putchar BRA ReCharl faire un cho Mes1 printf Message2 envoyer message la prochaine 36 PARKER KE k k KR k k k k k k k k k k k k k k k ke K K ke ke koe KOK KOK KOK KKK KEK KK RK KOK KK KOR koc kk RK OK K ke KOK KOK KEK KKK x r Essai des fonctions d affichage hexad cimal ASCII out2hex Message faire test hex to ascii 1 octets mode tendu printf CRLF Retour la lign t nouvelle lign out4hex a25f faire test hex to ascii 2 octets mode imm diat PRE kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk ok Compteur binaire sur le port B LDX 0000 loop INX petit d lai de 65536 comptes BNE loop LDAB Compt Incr menter la variable Compt INCB STAB Compt STAB PORTB Compt vers le port B BRA loop Message dc b Bienvenue au laboratoire de micro lectronique 0A 0D dc b appliqu e 0A 0D 00 Message2 dc b 0A 0D Bravo et la prochaine 0A 0D 00 CRLF dcib 0A S 0D 00 SOA descendre le curseur d une ligne SOD retourner le curseur la colonne 0 00 fin de te
64. est utilis e ici pour ne pas affecter les autres drapeaux du registre TFLGI qui n auraient pas encore t acquitt s L autre routine de service d interruption n acquittera pour l instant que sa requ te d interruption en d posant elle aussi un 1 logique sur le drapeau correspondant sa requ te Finalement le programme principal affichera l cran avec les fonctions DBUG12 les secondes depuis le d but du contr le des moteurs comme suit Temps 01 secondes Temps 02 secondes Temps OF secondes 77 2 4 LABORATOIRE 2d D tection du voltage des capteurs infrarouges Ce laboratoire vous permettra de mettre en pratique les connaissances acquises dans votre cours sur le convertisseur analogique num riques A N par approximations successives int gr au microcontr leur 68HCS12 Trois d tecteurs d obstacles par infrarouge IR GP2YOA21YK de la compagnie SHARP ont t mont s sur le robot mobile pour la d tection d un obstacle l avant droite ou gauche GP2Y0A21YK Signal processing circuit Oscillation circuit LED drive NH circuit D L Distance measuring IC Figure 47 Capteur infrarouge GP2YOA21 YK Chaque d tecteur diffuse une lumi re IR partir d une diode mettrice de lumi re LED et capte la quantit d nergie de lumi re r fl chie sur un objet par celle ci Cette quantit d nergie est ensuite traduite par le capteur en voltage sa sortie analogique Cette quant
65. fichier lab1 asm dans la fen tre Source 3 chargent une version compil e de labl asm dans la fen tre Assembly 4 monitorisent les variables dans la fen tre Data 5 monitorisent la m moire partie de l adresse 0080 dans la fen tre Memory 6 pr conditionnent le compteur de programme l adresse de d part 4000 pour le pointeur d instruction IP Instruction Pointer et le compteur de programme PC Program Counter True Time Simulator amp Real Time Debugger F GPA 70 labo1 projet1 SofTec_inDART HCS12 ini inDART HCS12 Component Command Window Help ele gt e E Source Rl Assembly FAGPA 70Mabol projet bin tp1 dba ORG ROMStart z permettre les interruptions 1000 initialisation de la pile au haut de ls RAM 0800 0FFF PRE RAA AAA HA A A A A A A A A ER Register D IX Auto Symb Global j SP Compt 6 unsigned char caractere B 64 unsigned char jgetchar 16563 int jputchar 16574 int o 0 B E B uel IP 4000 PC 4000 PPAGE 0 0 CCR SXHINZVC jprint 16650 int B Procedure jout2hex 16588 int joutdhex 16625 int Command After load the commands written below will be executed done VcmdVSofTec inDART HCS12 postload cmd Postload command file correctly executed 00 00 00 20 05 00 00 00 80 00 00 00 00 00 00 FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Figure 25 D vermineur
66. gs IDE Extras Font Courier X Sizej9 Plugin Settings zo Shielded Folders Script Occidental Source Trees Sample Editor I program the ore I am Code Completion Code Formatting Editor Settings Tab settings Text Colors M Tab indents selection Tab size 2 Debugger Display Settings M Auto indent Window Settings M Tab inserts spaces Global Settings Factory Settings Import Panel Export Panel OK Cancel Figure 16 Mise en place de la tabulation 1 1 4 2 Le fichier Ist Apr s la compilation de votre code le fichier LST contiendra la fois 1 les num ros de lignes relatives de vos fichiers d inclusion et vos macros INCLUDEs et MACROS 2 les num ros de lignes absolues de votre programme 3 les adresses ainsi que le code objet qui y est contenu et enfin 4 votre programme source Pour ce faire vous devez stipuler votre environnement de g n rer pour vos deux connections un fichier lst partir de votre code Pour une connexion en mode simulation dans CodeWarrior s lectionnez Project Set Default Target Simulator puis Edit Simulator Setting Dans la fen tre Simulator Setting cliquez sur Assembler for HC12 Cliquez sur le bouton Option puis s lectionnez Generate a listing file 30 a cSimulator Settings Target Settings Panels Target Target Settings Access Paths Build Extras Runtime Settings File Mappings Source Trees Assembler for HC12 Bumer for HC12 Compil
67. inthe La sous routine pourra tre utilis e pour lire les valeurs des d tecteurs infrarouges IR afin de prendre des d cisions appropri es pour la navigation d un robot 1 2 1 Simulation de la lecture de capteurs infrarouges D butez votre programme l adresse 4000 avec la directive de compilation ORG A la fin du laboratoire votre programme doit accomplir les t ches suivantes 1 Lire une s rie de trois nombres hexad cimaux situ s dans les adresses m moire 0091 0093 et 0095 et les mettre respectivement en m moire aux adresses 0800 0801 et 0802 Vous pouvez consid rer que les premi res adresses m moire correspondent aux valeurs du voltage de sorties des trois d tecteurs Irs et que les trois derni res sont des registres pour conserver les valeurs des d tecteurs 2 Lire les trois valeurs des nouvelles adresses m moire et v rifier chacune par rapport une valeur seuil de 55 laquelle doit tre d finie en utilisant la directive de compilation EQU au d but du programme La sortie des capteurs Irs est une valeur hexad cimale non sign e et indique la proximit des obstacles environnants 3 Si la valeur l adresse m moire 0800 est plus grande que la valeur seuil calculez la somme des cinq nombres suivant 1 2 3 4 5 et d poser le r sultat l adresse 0800 4 Si la valeur l adresse m moire 0801 est plus petite que la valeur seuil remplacer la par 00 5 Si la valeur l adresse m
68. it d nergie est proportionnelle la distance entre un obstacle et le capteur comme le montre la figure suivante 78 GP2Y0A21YK White paper Reflective ratio 90 Gray paper Reflective ratio 18 fo V ge V put volta Analog out 10 20 30 40 50 60 70 80 Distance to reflective object L em Figure 48 Voltage analogique en fonction de la distance de r flexion d un objet Les trois sorties des d tecteurs ont t branch es sur les entr es PADI PAD2 et PAD3 du convertisseur A N 2 4 1 Le convertisseur A N du 68HCS12 Vous devez donc programmer le convertisseur A N pour pouvoir convertir trois signaux analogiques en provenance des capteurs Chaque signal sera traduit sur 8 bits non sign et justifi droite et sera converti une vitesse de 2MHz Le chiffre obtenu du convertisseur A N de 8 bits 0 256d ou 00 FF correspondra une valeur comprise entre 0 et 5 volts bas e sur les voltages de r f rence bas Vrl Low Reference Voltage et de r f rence haute Vrh High Reference Voltage Ces voltages sont d j branch s sur la carte de d veloppement 0 volt et 5 volts respectivement Pour ce faire vous devez x l Activer le convertisseur A N et stipuler une remise z ro des drapeaux des canaux convertis d s la lecture des registres de r sultats de ces m mes canaux Les bits ADPU ATD Power Up et AFFC ATD Fast Flag Clear All du regi
69. it addresses LENGTH 2 This field specifies the record length which includes the address data and checksum fields The 8 bit record length value is converted to two ASCII characters The first character represents the most significant nibble ADDRESS 4 60r 8 This field contains the load address DATA 0 n This field contains the data bytes CHECKSUM 2 The last two bytes in the data record contain the record checksum The checksum is the sum of the record length load address and data fields This sum is then complemented 1 s complement and converted to two ASCII characters Description of the fields of a Motorola S Record record 100 Appendice D Commandes pour le d vermineur HI WAVE VER AUTOSIZE OPENIO OPENPROJECT OPEN SET LOAD LOADCODE LOADSYMBOLS FONT BCKCOLOR SLAY ACTIVATE CLOSE SYSTEM EXIT RESET HELP HI WAVE Engine LF NOLF CR NOCR LOG BS SAVEBP STEPINTO STEPOUT STEPOVER RESTART DDEPROTOCOL BC BD G GO S STOP P T Shows the version of all loaded commands Selects window sizing mode Loads an IO simulation component Opens an existing project Opens a component window Loads a target component Loads an application Code amp Symbols Loads an application Code only Loads an application Symbols only Changes font in component windows Changes background color of component windows Saves the layout and options of all components Activates a window component inout focus Closes a comp
70. l s agit d une repr sentation diff rente de l arborescence de Windows Cette arborescence ne montre que les fichiers texte ditables En ce qui nous concerne nous nous concentrerons sur cette repr sentation simplifi e lors du d veloppement des programmes Comme il ne s agit que de fichier texte un double click sur un des noms de fichier de cette arborescence ouvre le fichier correspondant dans la partie droite de la fen tre du logiciel CodeWarrior en mode dition Ceci implique que l utilisateur peut en tout temps changer son environnement manuellement Metrowerks CodeWarrior File Edit View Search Project Debug Processor Expert Window Help LEEA o xR m amp amp W Im 2 RES EE Simulator y w SR gt Files Link Order Targets AB readme txt Sources B mc93s12c32 inc HE3 Debugger Project File i Simulator ini SofTec ini Simulator_Reset cmd Simulator Preload o Simulator Postload ol Simulator SetCPU AA SofTec M SofTec_Startup cmd fll SofTec Reset cmd Rl SofTec_Preload cmd B SofTec_Postload c Figure 14 Repr sentation du projet dans le logiciel CodeWarrior 14 1 1 3 1 Description des fichiers du projet 1 1 3 1 1 Fichier Readme txt Situ dans le sous r pertoire labol projejl ce fichier contient les param tres de votre environnement des conseils d utilisation pour amorcer votre projet ainsi qu une petite d finition de la structure de vo
71. leur de EEPROM ouvre le fichier SofTec_inDART HCS12 abs s19 situ dans le sous r pertoire bin en format S RECORD de Motorola et le t l charge en s rie par le port USB vers la broche du BDM du microcontr leur Notez que le fichier SofTec_inDART HCS12 abs s19 n existe qu apr s avoir compil votre programme avec succ s Fichier burner bbl logical s record file OPENFILE SABS FILE s19 format motorola busWidth 1 origin 0 len 0x1000000 destination 0 SRECORD Sx SENDBYTE 1 SABS FILES CLOSE physical s record file OPENFILE ABS FILE phy format motorola busWidth 1 len 0x4000 origin 0x008000 destination 0x000000 ENDBYTE 1 lt ABS FILE gt rigin 0x018000 estination 0x004000 ENDBYTE 1 ABS FILE rigin 0x028000 estination 0x008000 ENDBYTE 1 SABS FILES Qo O Qo O Nn origin 0x3E8000 4 Vous trouverez le format standard S RECORD de Motorola en appendice C 17 destination OxOF8000 SENDBYTE 1 ABS FILE origin 0x004000 destination OxOF8000 SENDBYTE 1 ABS FILE origin 0x3F8000 destination OxOFCO000 SENDBYTE 1 lt ABS FILE origin 0x00C000 destination 0x0FC000 SENDBYTE 1 ABS FILES CLOSE 1 1 3 1 4 Fichier Simulateur ini et fichier SofTec ini
72. mATDSTATO CC2 mATDSTATO FIFOR mATDSTATO ETORF mATDSTATO SCF equ 00000086 equ 0 equ 1 equ 2 equ 4 equ 5 equ 7 equ 300000001 equ 300000010 equ 300000100 equ 300010000 equ 300100000 equ 310000000 Conversion Counter 0 Conversion Counter Conversion Counter 2 FIFO Over Run Flag External Trigger Overrun Fla Sequence Complete Flag Conversion Counter 0 Conversion Counter Conversion Counter 2 FIFO Over Run Flag External Trigger Overrun Flag Sequence Complete Flag 23 1 1 3 1 7 Fichier D BUG12M MAC Ce fichier contient les d finitions des macros pour des appels simples en assembleur des fonctions du simulateur de D BUGI2 de Motorola Fonctions getchar putchar out2hex outdhex printf arg arg arg Retourne un caract re tap sur le clavier dans le registre B Transmet le caract re contenu dans le registre B vers le terminal Traduit les deux quartets hexad cimal de l argument en code ASCII et les transmet au terminal Traduit les quatre quartets hexad cimale en code ASCII et les transmet au terminal Transmet la phrase d butant l adresse de l argument jusqu la rencontre du caract re terminateur de phrase 00 N B arg un des modes d adressage du 68HC12 Ce fichier doit tre inclus en d but de chacun de vos programmes avec la directive INCLUDE du compilateur assembleur Ex INCLUDE D BUGI2M MAC Ce fichier ne fait pas parti
73. mand 8 Bit interface After this command is written BF can be checke Interface 8 bits Set No of lines and display font Function Set Display OFF Clear Display Entry Mode Set Display ON Set C and B for cursor Blink options BF should be checked before cach of the instructions starting with Display OFF Note Figure 40 tapes d initialisations du LCD 68 2 2 3 Mode r el 1 Pour pouvoir lire l tat du bouton PPO et permettre de g n rer une interruption au bouton PP1 boutons physiquement branch s au port P PTP de la carte d valuation du HCS12 il suffit de programmer les bits lt 0 gt et lt 1 gt du port P comme suit a enentr es b en mode Pull Up c activ s sur un front descendant Registres DDRP Data Direction Register 00 PERP Pull Device Enable Register 03 PPSP Port P Select Register 00 2 Pour permettre au port P de g n rer une interruption lorsque PP1 est appuy il suffit de mettre le bit lt 1 gt du PIEP Port P Interrupt Enable Register 1 gt et de mettre le drapeau de PTP1 lt 0 gt dans le registre PIFP en y inscrivant un lt 1 gt a activer l interruption b mettre le drapeau d activation lt 0 gt Registre PIFP Port P Interrupt Flag Register 02 PIEP Port P Interrupt Enable Register 02 D s que le bouton PP1 sera appuy l interruption r digera le programme l adresse contenue dans son vecteur associ Ce vecte
74. ment libre de r aliser toutes les tapes du robot mobile comme bon il vous semble 3 2 1 1 Point mort 1 Envoyez un signal d une dur e de 1 5ms aux moteurs droit et gauche 2 Ajustez les potentiom tres des moteurs jusqu l arr t complet des roues 3 2 2 talonnage Les tapes d talonnages peuvent se faire dans votre programme Une bonne fa on de faire est de programmer une routine de service d interruption d talonnage amorc e par un des boutons poussoir de la carte d valuation 3 2 2 1 Alignement pour la marche avant 1 vitesse constante additionnez ou soustrayez une constante vos valeurs de TC2 et TC3 2 Ajustez cette constante jusqu ce que le robot se d place en ligne droite Il serait judicieux de faire cette alignement dynamiquement en appuyant sur un des boutons poussoir afin d occasionner un incr ment ou un d cr ment dans une des constantes compensatrices pour les TC2 et TC3 3 2 3 Suggestions et approches 1 Utilisez un bouton de mise en marche et d arr t 2 A la mise en marche appliquez un profil d acc l ration sans asservissement 91 3 Restez vitesse constante jusqu la mise en arr t 4 A la mise l arr t appliquez un profil de d c l ration sans asservissement et attendre une autre commande 3 2 3 1 Routine de service d interruption des moteurs La routine de service d interruption des moteurs pourrait la fois servir l acc l ration la d
75. n d but de chacun de vos programmes avec la directive INCLUDE du compilateur assembleur Ex INCLUDE mc9s12c32 inc Fichier mc9s12c32 inc Based on CPU DB MC9S12C32 80 version 2 87 349 RegistersPrg V2 02 TAEHEEEHEREEEREREERREREREREREERHEHEREEEREEREESRRESAHESAHEAHEREETRRESAHESTHITARAEAHE EE Filename MC9S12C32 inc Processor MC9S12C32CFU16 FileFormat V2 02 DataSheet 9S12C FamilyDGV1 D V01 00 Compiler CodeWarrior compiler Date Time 21 12 2005 21 43 Abstract This header implements the mapping of I O devices c Copyright UNIS spol s r o 1997 2005 UNIS spol s r o Jundrovska 33 624 00 Brno Czech Republic http www processorexpert com mail info processorexpert com File Format Revisions 14 11 2005 V2 00 Deprecated symbols added for backward compatibility section at the end of this file 15 11 2005 V2 01 Fixed invalid instruction in macro _ RESET WATCHDOG for HCS12 family 2 17 124 2005 V2 02 Arrays symbols xx ARR are defined as pointer to volatile see issue 2778 CPU Registers Revisions none 22 F FEAE AE AE AE AE E AE AE AE E E AE AE AE FE E AE AE FE HE E AE AE AE HE E AE AE AE FE E E AE FE FE FE E AE AE AE HE E AE AE AE HE E AE FE FE HE E AE AE FE FE AE AE AE AE FE FE AE AE FE HE Memory Map and Interrupt Vectors k k k k k koe k k k k k k k k k k k k k k ke ke k ko ke kk ke ke ke ke ke ke ke e e ke aoa RAMStart RAMEnd ROM C000Start ROM CO00E
76. nd ROM 4000Start ROM 4000End Vreserved63 Vreserved62 Vreserved l Vreserved60 Vreserved59 Vvreglvi Vpwmesdn Vportp Vreserved55 Vreserved54 Vreserved53 Vreserved52 Vreserved51 Vreserved50 Vreserved49 Vreserved48 Vreserved47 Vreserved46 Vreserved45 Vreserved44 Vreserved43 Vreserved42 Vreserved41 Vreserved40 Vcantx Vcanrx Vcanerr Vcanwkup Vflash Vreserved34 Vreserved33 Vreserved32 Vreserved31 ATDSTATO A D Status Register 0 ATDSTATO equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ equ 00003800 00003FFF 0000C000 0000FF7F 00004000 00007FFF 0000FF80 0000FF82 0000FF84 0000FF86 0000FF88 0000FF8A 0000FF8C 0000FF8E 0000FF90 0000FF92 0000FF94 0000FF96 0000FF98 0000FF9A 0000FF9C 0000FF9E 0000FFAO0 0000FFA2 0000FFA4 0000FFA6 0000FFA8 0000FFAA 0000FFAC 0000FFAE 0000FFBO 0000FFB2 0000FFBA 0000FFB6 0000FFB8 0000FFBA 0000FFBC 0000FFBE 0000FFCO changer pour l environnement la maison 0x00000086 ATDSTATO A D Status Register 0 0x00000086 bit numbers for user in BCLR BSET BRCLR and BRSET ATDSTATO CCO ATDSTATO CC1 ATDSTATO CC2 ATDSTATO FIFOR ATDSTATO ETORF ATDSTATO SCF bit position masks mATDSTATO CCO mATDSTATO CCl
77. ndent aux moteurs avec les captures des temps d entr es input capture ICn du port T c Contr ler les d placements du robot en acc l ration vitesse constante et d c l ration en modifiant tout simplement la valeur des compteurs temporels TC2 et TC3 des Ocn tout en suivant un profil de vitesse pr tabli d Configurer les broches du port T e Afficher les secondes sur un terminal 2 3 1 Introduction Un des potentiels importants du microcontr leur 68HCS12 est son module de gestion du temps TIM Ce module est utilis pour la g n ration la mesure et la synchronisation des signaux de du monde externe travers le port T Nous utiliserons les broches PTO et PT1 du port T en captures d entr es ICO et IC1 et les broches PT3 et PT2 pour g n rer des signaux en sorties OC3 et OC2 2 3 2 Modulation de la dur e d une impulsion Les contr leurs attach s aux moteurs du robot mobile figure 47 acceptent un signal p riodique de 16 386ms avec une dur e variable pour en contr ler la vitesse Comme le montre la figure 46 la dur e de l impulsion peut varier de 1 5ms 2ms pour contr ler une vitesse positive ou de 1 5ms 1ms pour contr ler une vitesse n gative Les moteurs seront inertes pour une dur e constante d impulsion de 1 5 ms 71 1 0ms vitesse maximum n gative 1 5ms vitesse nulle 2 0ms vitesse maximum positive Figure 42 Impulsions envoy es aux contr leurs des moteurs Figu
78. ntrod CO ae sec cect u ase umu ua Sihua wita fen Lacan tiec es 71 2 3 2 Modulation de la dur e d une impulsion 71 2 3 2 1 Module de l horloge et des minuteurs de temps TIM 73 2 3 2 2 Sorties de signaux sur une comparaison d horloge OCn 73 23 23 Captures des temps d entr es ICn a REA SD On CE DRAN 74 2 324 Cas Mathieu er avec Ie X967 oes tasas Mes aan tiM Mes ed pe atur oie e 75 23 23 COM VINES SE See a u n aan tend dup tuus cue ee eue REES 76 2 3 2 0 Mesure du nombre d impulsion arrivant aux moteurs 76 2 3 2 7 Routines de service et programme principale TI 2 4 LABORATOIRE 2d D tection du voltage des capteurs infrarouges 78 2 44 1 Le convertisseur A N du 68HCS 12 ase etie tate ueste te soaatecastaatouleccntssnecaane 79 24 2 Num risation des IRs et affichage usines 8l 2 5 Rapport pour le laboratoire 2 83 Xol Travai arremete r D S k uu a A a au Su tate e ine ne 83 25 2 uB reme de Correction uy un s a kian Een Pie vans ea shen tases a ns aaa 83 3 LABORATOIRE 3 Navigation temps r el du robot mobile 85 31 LABORATOIRE 3a Contr le de la direction du robot mobile
79. onds OSCFREQUENCY Displays sets the oscillator frequency SHOWCYCLES RESETCYCLES RESETSTAT RESETRAM RESETMEM Shows the number of MCU cycles Sets the internal MCU cycle counter to typed value Resets the statistical data Resets the RAM to undefined Resets specified memory to undefined 103 LOADMEM Load a memory configuration file SETCPU Load the CPU awareness CMDFILE Specify a command file state and full name TRIGGER Define a range to be recorded in the trace HC12 Simulator HC S12 SUPPORT enables HCS12 specific mode for MOVB MOVW instructions BGND CYCLES alLoins to adopt the simulator s clock cycles for BGND advise HALT ON TRAP stop on call to exception handler PSMODE controls power save modes STOP or WAIT mode FCS WARNING SETUP Set FCS behavior for warning messages MESSAGE HIDE ID Hide a message with specific ID MESSAGE SHOW ID Show a message with specific ID MESSAGE HIDE RESET All previously hidden messages to be displayed again FCS ATDO SETPAD Set PAD with the given voltage in floating point format N B La syntaxe compl te de ces commandes se trouve dans le fichier Manual Engine HC12 pdf 104 Table de caract res ASCII AO CO J C Cn S C0 9 COO FS GS RS Us Utilisez ALT null start of heading start of text end of text end of transmission enquiry acknowledge bell backspace horizontal tab NL line feed new line vertical tab NP form feed new p
80. onent window Executes an external application Terminates this application Resets the target MCU Displays available commands Opens a log file Closes a log file Records all commands to a file Stops recording commandis to a file Specifies items to be logged Sets breakpoint Saves breakpoints into a file Step Into Step Out Step Over Restart execution DDE Protocol options Clears breakpoint Displays breakpoint s Starts execution Go Starts execution Go Stops execution Halt Stops execution Halt Executes an instruction Flat step Executes CPU instruction s 101 WB WW WL MS RD RS MEM DASM DB DW DL CD E A PRINTF FPRINTF NB LS SREC SAVE PAUSETEST TESTBOX REGFILE REGBASE DEFINE UNDEF RETURN GOTO GOTOIF WHILE FOR REPEAT IF FOCUS WAIT AT CF CALL Source SPC SMEM SMOD SPROC FOLD UNFOLD Writes byte s into target memory Writes word s into target memory 2 bytes Writes long s into target memory 4 bytes Writes byte s into target memory same as WB Displays registers Sets registers Displays Memory map Disassembles target memory Displays byte s from target memory Displays word s from target memory 2 bytes Displays long s from target memory 4 bytes Displays Changes directory Evaluates an expression and displays its result Evaluates an expression and assigns its result to an existing variable Display a string on the window using printf
81. outine de direction pour le robot mobile Cette routine utilisera les services que vous offre le module de la gestion du temps TIM pr alablement exp riment dans le laboratoire pr c dent Cette routine devra tre en mesure de d placer le robot en ligne droite ainsi que de le faire tourner avec un angle donn Vous devez choisir un ou plusieurs types de braquage pour contr ler la direction du robot 86 l Braquage court en inversant le sens de rotation des moteurs Figure 49 braquage court 2 Braquage moyen en stoppant une roue et en actionnant l autre Figure 50 Braquage moyen 3 Braquage long en calculant un rayon de braquage en donnant des vitesses diff rentes aux deux moteurs Figure 51 Braquage long 87 3 1 2 Calcul des braquages La routine devra tre en mesure d accepter une vitesse pour les moteurs de droite et de gauche ainsi que le temps requis pour le braquage angle de braquage Avant l appel de la routine vous devrez 1 d terminer la dur e de l impulsion envoyer aux servomoteurs pour en contr ler la vitesse 2 d terminer le nombre d impulsions envoyer aux servomoteurs pour contr ler le temps de braquage La vitesse des moteurs sera toujours constante dans un braquage Vous pouvez choisir dans le tableau d exemples suivant la vitesse et le temps de braquage que vous d sirez Bien que les valeurs du tableau soient de 6000 8000 pour des dur es de 1 5 2 0ms vous pouvez l inte
82. procedure chain Hides source text for clearness at program block level Exhibits the contents of folded source text blocks 102 SLINE FINDPROC FIND ATTRIBUTES Assembly SPC SMEM ATTRIBUTES Procedure ATTRIBUTES Register ATTRIBUTES Memory SPC SMEM SMOD FILL UPDATERATE ATTRIBUTES COPYMEM Displays the line Find the Procedure Searches an arbitrary pattern in the currently loaded source file Sets up the display Shows the specified address Shows a memory range Sets up the display Sets up the display Sets up the display Shows the address given as argument Shows the memory range given as argument Shows the first global variable of the module Fills a memory range with the given value Sets the update rate Sets up the display Copies a memory range to a specified location SEARCHPATTERN Search a pattern in memory Data SPROC ADDXPR PTRARRAY SMOD ZOOM UPDATERATE DUMP ATTRIBUTES Command ATTRIBUTES Simulator TRUETIME Displays local or global variables of the procedure given as parameter Adds a new expression in the data component Switches on or off the pointer as array displaying Displays global variables of the module given as parameter Exhibits the member fields of structures by diving into the structure Sets the update rate of the data component Dumps the content of the data component to the command line Sets up the display Sets up the display Returns the true time in microsec
83. programme Si des erreurs de syntaxe ou des mises en gardes sont d cel es le ou les num ros de ligne ainsi que le ou les types d erreurs vous sont pr sent s im Errors amp Warnings A Errors and warnings fo a ce 3 w Error 412202 Not a hcl2 instruction or directive tpl asm line 82 Error Compile failed Lt v b My 3 v of Path F GPA 7O0 labo1 projetl Sources tp1 asm permettre les inter 4 LDSS 1000 initialisation de de ls RAM 0800 0 j EEE EME DE 3 3E 3E JE 3E E HE 3 3 JE 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 9 3 3 3 3 3 3 3 3 3 3 3 3 EEE I Line 82 Coll a Figure 24 Erreurs et mises en gardes CodeWarrior rep re ces lignes et pointe les erreurs l aide d un curseur rouge Vous pouvez corriger vos erreurs dans cette fen tre ou bien dans votre fen tre d dition Corrigez le LDSS par LDS et recompiler ce niveau le fichier de t l chargement S19 ainsi que le fichier de listing LST ont t cr s dans VOS r pertoires On retrouve dans le fichier LST cinq colonnes Premi re colonne Abs Num ros de lignes absolues incluant les INCLUDES et les MACROS de votre programme Deuxi me colonne Rel Num ros de lignes relatives de votre programme source Troisi me colonne Loc Adresses absolues en m moire de votre code objet assembleur Q
84. r e pour une vitesse maximum positive du moteur gauche OC7 SS 2ms 16 384ms Figure 45 Contr le de la vitesse des moteurs gauche et droit par la modulation de la dur e 75 2 3 2 5 Profil de vitesse Dans un premier temps on vous demande de contr ler la vitesse du robot mobile uniquement en marche avant avec le profile de vitesse suivant Comme le montre la figure suivante vous devrez g n rer 1 10 niveaux d acc l ration de 6000 impulsions 8000 impulsions dans les 5 premi res secondes 2 10 vitesses constantes 8000 impulsions pour les 5 secondes suivantes 3 10 niveaux de d c l ration de 8000 impulsions 6000 impulsions pour les 5 derni res secondes Dur e 8000 6000 0 5 10 15 sec Figure 46 Profil de vitesse pour le contr le des moteurs en marche avant Pour ce faire programmez un tableau de 30 variables de 16 bits repr sentant les dur es associ es aux diff rentes vitesses du moteur droit et 30 autres variables associ es aux moteur gauche A l ex cution de votre programme en mode r el mesurez la dur e des impulsions ainsi g n r es sur l oscilloscope pour v rifier le bon fonctionnement de votre programme 2 3 2 6 Mesure du nombre d impulsion arrivant aux moteurs Les sorties OC3 et OC2 qui contr lent les moteurs ont t court circuit es avec les entr es ICO et ICI respectivement sur les cartes de d veloppements du laboratoire et des robots mobiles Il devient donc possible
85. r le programme sinon on n affichera pas les voltages des capteurs sur le LCD et on terminera le programme 64 2 2 2 Mode simulation 1 Pour permettre au r cepteur de caract re de l interface de communications s rielles SCI Serial Communications Interface de g n rer une interruption la r ception d un caract re en provenance du clavier il suffit de mettre 1 le bit RIE Receive Interrupt Enable du registre SCICR2 du SCI D s que le r cepteur de caract res s riels recevra un caract re le SCI r digera le programme l adresse contenue dans son vecteur associ Ce vecteur se situe l adresse FFD6 L adresse contenue dans le vecteur d interruption du SCI sera donc l adresse de service de l interruption du SCI La routine de service d interruption est toute fin pratique une routine conventionnelle sauf pour sa fin qui se termine par un RTI Return from Interrupt plut t qu un RTS Return from Subroutine Cette routine devra a Lire le registre SCISRI et SCIDRL pour acquitter l interruption b Activer une variable d urgence titre d exemple mettre le chiffre 0 dans la variable en m moire RAM Urgence c D sactiver l interruption du r cepteur en remettant le bit RIE du SCICR2 lt 0 gt Pour brancher l afficheur LCD au simulateur ajoutez les deux derni res lignes de commandes suivantes au fichier de commande Simulateur SetCPU cmd At startup the commands written belo
86. r les broches d entr es 00 Capture d branch e 01 Front montant 10 Front descendant 11 Les deux fronts Tableau 4 S lection des signaux d entr es des ICn 74 2 3 2 4 Cas particulier avec le OC7 Il est possible de forcer l activation ou la d sactivation des broches de sorties sur le port T PTO PT6 inclusivement sur l galit du compteur du OC7 TC7 On donne les broches que l on veut forcer ainsi dans le registre OC7M Output Compare 7 Mask et on donne le data que l on veut forcer sur ces broches dans le registre OC7D Output Compare 7 Data Pour g n rer une p riode constante on forcera donc l activation des broches de sorties qui sont branch es aux moteurs sur chaque galit du compteur du OC7 TC7 avec le compteur TCNT Ceci se produira chaque 65536 comptes Si on programme le compteur du OC7 TC7 0000 on forcera les broches de sorties s activer toutes les 16 384ms sur le compte de 0000 voir la figure suivante La d sactivation de ces broches se fera par les OC2 et OC3 Ceux ci d sactiveront leur broche quand il y aura galit de leur compteur TC2 et TC3 avec le TCNT Une fois les OC2 OC3 et OC7 programm s nous n avons plus qu modifier les valeurs des compteurs TC2 et TC3 pour g n rer des dur es de 1 0ms 2 0ms pour contr ler la vitesse des moteurs gauche et droit du robot mobile Dur e pour une vitesse maximum n gative du moteur droit 16 384ms Du
87. re 43 Contr leur et moteur CC du robot mobile 72 L ajustement de la vitesse nulle des moteurs se fera en envoyant un signal p riodique de 16 384ms avec une dur e constante de 1 5ms Si le moteur tourne dans ces conditions il suffira d ajuster le potentiom tre de la figure 48 associ au moteur pour annuler cette vitesse Figure 44 Potentiometre pour l talonnage nul 1 5ms 2 3 2 1 Module de l horloge et des minuteurs de temps TIM Le module TIM fonctionne partir d un compteur sans fin de 16 bits le TCNT branch ses 8 OCn ICn Ce compteur peut compter des vitesses diff rentes selon la vitesse de l horloge qui le contr le Sa vitesse d coule du BUSCLK qui est pr sentement fixer 8MHz Comme on d sire une p riode de 16 384ms pour contr ler la vitesse des moteurs on devra programmer la vitesse de l horloge du module TIM 4MHz ce qui donnera un d bordement d horloge toutes les 16 384ms pour un compte de 65536 coups d horloge Pour ce faire il faut programmer le registre TSCR2 TMSK2 du livre de cours du module TIM pour avoir le 8Mhz 2 L activation du module TIM se fait en activant le bit TEN du registre TSCR1 TSCR du livre de cours 2 3 2 2 Sorties de signaux sur une comparaison d horloge OCn Les OCn activent ou d sactivent les broches en sorties PTO PT7 du 68HCS12 qui ont t programm es en OCn dans le registre TIOS Chaque activation ou d sactivation des broches de sorties s
88. re programme sur une seule ligne de l imprim L impression en mode paysage est accept e Remettre une copie lectronique dans MOODLE de votre programme asm de votre manuel d utilisateur docx et de votre rapport docx Fin du laboratoire 3 94 Appendice A Syntaxe de compilation pour le langage micro assembleur de Motorola Mode d adressage Format du champ de l op rande 1 Inh rent Pas d op rande 2 Imm diat op rande 8 16 bits entier 3 Direct op rande 8 bits adresse 4 tendu op rande 16 bits adresse 5 Relatif tiquette d placement relatif 8 16 bits sign 6 Offset 5 bits etindex R op rande5bits R R X Y SP ou PC 7 Offset 3 bits pr d cr ment et index R op rande3bits R R X Y ou SP 8 Offset 3 bits pr incr ment et index R op rande3bits R R X Y ou SP 9 Offset 3 bits post d cr ment et index R op rande3bits R R X Y ou SP 10 Offset 3 bits post incr ment et index R op rande3bits R R X Y ou SP 11 Offset A ou B 8 bits ou D 16 bits et index R op randeABouD R R X Y SP ou PC 12 Offset 9 bits sign s et index R op rande9bits R R X Y SP ou PC 13 Offset 16 bits etindex R op randel6bits R R X Y SP ou PC sign s ou pas sans effet dans 64 K octets 14 Offset 16 bits et index R indirect op radel bits R R 2 X Y SP ou PC pointent l argument 15 Offset D et index R indirect op radeD R R X Y SP ou PC pointent l argument
89. res 46 Figure 29 Changer la valeur du registre d entr e sortie PORTB eene 47 Figure 30 Exemple de la vitesse d un moteur en m moire 49 Figure 31 Exemple du profil de la vitesse d un moteur 50 Figure 32 Localisation des capteurs IRS du robot 54 Figure 33 D finition des fonctions d appartenance d entr es pour chacune des variables du Controleur lou us eae ns an fal et cdd dd ce en tente 56 Figure 34 D finition des fonctions d appartenance de la sortie du contr leur flou 56 Figure 35 Bouton poussoir de la carte d valuation 61 Figure 36 Boutons poussoirs en mode simulation eese 62 Figure 37 Afficheur LCD en mode simulation SUL duse eid n u 65 Figure 38 Registres de contr le du LCD eter dead abana dtes aibi use i nt 66 Figure 39 Instructions possibles au LCD en mode simulation 67 Figure 40 tapes d initialisations du LCD o esae ect c tete te e o HR 68 Figure 41 Afficheur LCD DMC 16117A ud uec a eee ote ese cede e e quoe ae 70 Figure 42 Impulsions envoy es aux contr leurs des moteurs 72 Figure 43 Contr leur t moteur CC du robot mobile eec teer event teet 72 IV Figure 44 Figure 45 Figure 46 Figure 47 Figure 48 Figure 49 Figure 50 Figure 51 Figure 52 Potentiometre pour T talonnage nul 1 Sim aient redde
90. rpr ter de 6000 4000 pour des dur es de 1 5 1 0ms Tableau 5 Exemples de vitesses et de braquages moyens pour une rotation de 90 degr s Temps pour Nombre Valeur RPM 2 Dur e de Vitesse mm S tourner d impulsions l impulsion TCn ms 2 de 90 mS requises 6030 0 00 1 508 0 00 6040 3 75 1 510 14 58 8000 00 489 6 6050 5 00 1 520 19 44 6000 00 367 2 6060 6 50 1 515 25 27 4615 38 282 5 6070 8 00 1 518 31 10 3750 00 229 5 6080 9 25 1 520 35 96 3243 24 198 5 6090 10 50 1 523 40 82 2857 14 174 9 6100 11 80 1 533 45 87 2542 37 155 6 6110 13 00 1 528 50 53 2307 69 141 2 6120 14 50 1 530 56 36 2068 97 126 6 6130 15 75 1 533 61 22 1904 76 116 6 6140 17 00 1 535 66 08 1764 71 108 0 6180 18 75 1 545 72 88 1600 00 97 9 6230 21 50 1 558 83 57 1395 35 85 4 6280 29 00 1 570 112 73 1034 48 63 3 6330 35 70 1 583 138 77 840 34 51 4 6380 41 00 1 595 159 37 734 71 44 8 6430 46 10 1 608 179 20 650 76 39 8 6480 50 50 1 620 196 30 594 06 36 4 6530 59 30 1 633 230 51 505 90 31 0 6580 63 50 1 645 246 84 472 44 28 9 88 6630 66 50 1 658 258 50 451 13 27 6 6680 69 50 1 670 270 16 431 65 26 4 6730 75 40 1 683 293 09 397 88 24 3 6780 77 30 1 695 300 48 388 10 23 8 6830 80 30 1 708 312 14 373 60 22 9 6880 81 30 1 720 316 03 369 00 22 6 6930 83 30 1 733 323 80 360 14 22 0 698
91. s etc associ votre cours 1 1 3 Ouverture d un projet dans CodeWarrior HC S 12 IDE CodeWarrior de la compagnie FreeScale est un logiciel qui int gre un environnement de d veloppement pour plusieurs types de microcontr leurs dont le 68HCS12 de la compagnie Motorola On y retrouve un traitement de texte ASCII diff rents assembleurs et compilateurs C des g n rateurs de liens et m me un syst me expert pouvant sous certaines conditions g n rer automatiquement une partie du code en langage assembleur ou C Cet environnement peut contr ler le BDM Background Debug Module du microcontr leur de la compagnie Motorola par le port USB d un PC Le BDM permet le t l chargement et le d verminage en ligne d un programme r sident en m moire FLASH du microcontr leur De plus l environnement de CodeWarrior peut g n rer un code ex cutable que le d vermineur de la compagnie FreeScale peut simuler totalement sur un microcontr leur virtuel Ce d vermineur peut m me si on le d sire simuler des composantes lectroniques virtuelles que l on peut brancher au microcontr leur virtuel titre d exemple on peut y brancher des DELs un clavier num rique un terminal des commutateurs etc Nul besoin de poss der la carte de d veloppement du microcontr leur pour faire du pr prototypage Bien que CodeWarrior Development Studio for HC S 12 Microcontrollers Special Edition soit disponible gratuitement chez www
92. s avec le curseur de droite et s lectionner Run To Cursor Le programme s ex cutera de sa position d arr t ligne en bleu la position de votre curseur pour se remettre en position d attente True Time Simulator amp Real Time Debugger F GP File View Run inDART HCS12 Component Source Window Help neja e W s zz see E Source FAGPA770NabolNprojetl bin tp1 dbg Entry permettre les interruptions ins a H Set Breakpoint pa FLLLLLLLLLLLLLLLLLLL LAE 3 N RER how Breakpoints Show Location A Init vitesse du PLLCI LS Set Trigger Address A ul Set Trigger Address B Triggers Settings d pid pen Trigger Settings Dialog Trigger Module Usage VAROOD01 16384 int Compt 6 unsi SetMarkpoint caractere 64 unsi jgetchar 16563 int jputchar 16574 int jprintf 16650 int Show Markpoints Open Source File joutzhex 16588 int Copy Ctri C Go To Line Ctri G w Find Ctrl F Find Procedure Ctri I After reset the cor done XcmdVSofTec inD I Folding Reset command file cori Marks User RESET ToolTips in gt Figure 27 Ex cuter le code jusqu cette ligne Finalement une troisi me facon d avancer dans votre programme est d ins rer des points d arr ts dans le programme des adresses particuli res et de lancer votre programme avec la commande GO dans la fen tre de Command ou avec la fl che verte la gauche dans
93. s en transmission et une quatri me fois pour fixer le nombre de lignes une ou deux La figure 39 montre comment initialiser le LCD pour communiquer en 8 bits utiliser les deux lignes de l afficheur afficher le curseur et pousser le AC Address Curser vers la droite sur r ception d un caract re Vous devez respecter les temps d attentes entre les lignes de codes de l initialisation et des acc s au LCD Pour ce faire vous devez concevoir une routine DELAT de 1 ms de d lai Cette routine devra accepter le nombre n 1 ms attendre dans le registre Y Cette routine pourra donc g n rer des d lais de 1 ms 65536 ms 67 Wait more than Sms after Vec 4 5V RS R W DB DB DB DB DB DB DB DB 00 ca l X amp Wait more than 4 1ms RS R W DB DB DB DB DB DB DB DB 0 D 0 0 E Lh x K X X Wait more than 100us RS R W DB DB DB DB DB DB DB DB 00 0 0 1 tt X ES amp RS R W DB DB DB DB DB DB DB DB 00 0 0 D J N F x x 0 0 0 0 Initialization Complete Display Ready No data should be transferred to or from the display during this time Function Set Command 8 Bit interface BF cannot be checked before this command No data should be transferred to or from the display during this time Function Set Command 8 Bit interface BF cannot be checked before this command No data should be transferred to or from the display during this time Function Set Com
94. se servant de la table de vecteur du d vermineur La table de vecteur contient des adresses sp cifiques l adresse de d part des fonctions programm es Getchar Putchar Out2hex Out4hex et Printf Ce fichier doit tre inclus la toute fin de votre code mais avant la directive ORG FFFE de chacun de vos programmes avec la directive INCLUDE du compilateur assembleur Ex INCLUDE D BUGI2M ASM ek k Ck Ck k lt k lt lt x lt k lt k lt k lt k lt C Ck lt x K CK lt lt x lt k lt x x k lt k x lt x lt k x lt lt k A x lt x lt lt lt x x lt x lt RU Interrupt Vectors x k k k k k k KK x k k k k k x k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k k did ORG SFFFE DC W Entry Reset Vector END fin de compilation Ce fichier ne fait pas partie de votre projet Vous devez le copier dans votre sous r pertoire projetl Sources PRE RKRKR k k k k k k k k k K EK KK RK EK KEK KKK KOK KER KKK KOK ke kk he heck KER ko KR KOK koc heck R OR kc ke EK Routines de simulation de D BUG12 Auteur Maurice Tremblay E Date ao t 2004 7 ck ck k x K k kk ck k k k KK x k lt k x x KK KK KK KK KK x k x x x x x x x ck x lt x KK KK lt x x KKK KK KKK pOCKCKCK k k k k k k k k k k k OR K K hok KOK KR KR KOK AE KOK K KOK K K CR KOK KOR OK OK ORURO kk koc ke R K KOK RK OR OK K e e
95. sse Vitesse 1 Vitesse 355 4C XC CC C 13EC 1388 1388 1388 1388 1388 1388 1388 1388 Vitesse 1388 Vitesse 1 Vitesse 1 Vitesse 1 Vitesse 1 Vitesse 1 Vitesse 1 Vitesse 1 Vitesse 1 Vitesse 1388 1388 13EC 1450 14B4 1518 TSXG 15E0 1644 Vitesse 1 Vitesse 1 Vitesse Ed OQ QU 5 Lo 1 o 01 amp CO N O Hj EH D O U gt o 16A8 170C 1770 TA 0578 TC 15E0 Ttotal DeltaV 1B58 0064 1AF4 1B58 1B58 1B58 1B58 1B58 1B58 1B58 1B58 1B58 1B58 1B58 1AF4 1A90 1A2C 19C8 1964 1900 189C 1838 17D4 1770 53 1 5 LABORATOIRE 71e Contr leur logique flou avec les instructions du HCS12 Ce laboratoire est congu pour vous permettre l tude et la mise en application d un contr leur logique flou A cette fin vous utiliserez le jeu d instructions sp cialis es et int gr es au 68HCS12 Ce laboratoire n ex cutera qu une seule it ration de contr le et sera utilis comme une partie du programme final pour le contr le du robot 1 5 1 Contr le de direction d un robot 68HC S12 STARTER KIT Port AD Moteur gauche Moteur Capteur droit Capteur gauche centre Figure 32 Localisation des capteurs IRs du robot Le robot est quip de trois capteurs infrarouges IR s Sharp GP2YOA21YK servant d tecter la proximit d obstacles Chacun des capteurs poss de une lumi re I
96. stload cmd EN 21111 15 y Postload command file correctly executed STARTED RUNNING 00 00 00 20 05 00 00 00 STOPPING 00 00 00 00 00 00 00 FF HALTED 3 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 in 00 00 00 00 00 OO 00 00 For Help press F1 2 000000 MHz 38 417 900 MC9512C32 FCS HALTED Figure 15 Connexions virtuelles de 8 DELs I O Led et d un terminal Terminal au d vermineur en mode simulation 2 1 1 3 1 6 Fichier mc9s12c32 inc nomenclature des registres Le contr le des modules internes du microcontr leur se fait partir d critures et de lectures dans des registres appartenant ces diff rents modules Chaque registre est accessible par l adresse m moire qui lui est d di e Plut t que de stipuler l adresse hexad cimale binaire ou d cimale d un registre pour y acc der on utilisera de facon ergonomique des noms d quivalences attach s ces diff rentes adresses Le fichier mc9s12c32 inc est donc un norme fichier de noms quivalents des adresses m moires particuli res De plus ce fichier attribut des noms chacun des bits d tats et de contr le d un registre donn Exemple V rifier si le convertisseur analogique num rique a fini une s quence de conversion Plut t que de v rifier le bit 7 de l adresse 0086 on v rifiera le bit SCF Sequence Complete Flag de l adresse ATDSTATO Analog To Digital Converter Status Register 0 Ce fichier doit tre inclus e
97. stre de contr le no 2 du convertisseur A N ATDCTL2 ATD Control Register 2 devront tre programm s 1 79 2 Stipuler qu il y a 3 conversions faire en programmant les bits S8C S4C S2C et SIC Conversion Sequence Length du registre de contr le no 3 du convertisseur A N ATDCTL3 ATD Control Register 3 Les bits SIC et S2C du registre ATDCTL3 devront donc tre mis 1 Notez que la longueur d une s quence de conversion ne stipule pas dans quels registres de r sultats seront d pos s les r sultats des conversions Vous verrez un peu plus loin o seront stock s les r sultats des conversions Stipuler une r solution de 8 bits avec une vitesse de conversion de 2MHz avec 2 coups d horloge ATDclock pour le Sample and Hold Les bits SRES8 A D Resolution Select et PRSO ATD Clock Prescaler du registre de contr le no 4 du convertisseur ATDCTLA ATD Control Register 4 devront tre 1 Notez que le BusClock est 8MHz au d part et que le PRS Prescale Values est gale 1 avec les bits PRS4 0 PRS3 0 PRS2 0 PRS1 0 et PRS0 1 A TDclock BusClock PRS 1 0 5 2MHz 8MHz 2 0 5 Une conversion prendra 10 coups d horloge ATDclock donc 1 200KHz 5 us Comme vous avez trois canaux le temps de conversion total prendra 15 us Stipuler des conversions multiples le num ro du canal de d part et la justification droite dans les registres de r sultats Les bits CA Analogue Input Ch
98. t LABId ASM ainsi qu un imprim de votre rapport N B Pour l imprim prenez soin d utiliser une police pas fixe COURRIER capable de reproduire la plus grande ligne de texte de votre programme sur une seule ligne de l imprim L impression en mode paysage est accept e 2 Une copie sur MOODLE de vos programmes LAB2b ASM LAB2c ASM et LABd ASM ainsi que de votre rapport doc 2 5 2 Bar me de correction Programme a b Fonctionnalit incluant une pr sentation orale au charg de TPs 15 Code structur et commentalres 5 Rapportu cata nse porh a rai a R R O E re anna 8 Introduction 1 Objectifs 1 M thodes 3 Discussion 2 Conclusion 1 Programme c Fonctionnalit incluant une pr sentation orale au charg de TPs 15 Code structur et commentalres 5 Ra3pp rt arge anasu un ena CERE mau gu Cavs Evae te ERU y qa Saqi gus 8 Introduction 1 Objectifs ees 1 M thodes 3 Discussion 2 Conclusion 1 83 Programme d 15 Fonctionnalit incluant une pr sentation orale au charg de TPs Code structur et commentaltres 5 RAD PORE ya aaa a 8 Introduction 196 Objectifs 1 M thodes 3
99. t printf Ces routines permettent l utilisation simple d un terminal intelligent bidirectionnel pour communiquer avec votre microcontr leur HCS12 Ls 2 Modifier le programme pr c dent pour demander un utilisateur un choix parmi trois vitesses et trois temps total comme suit Choisissez une vitesse constante Rapide 1 Moyenne 2 lente 3 2 Choisissez un temps total Rapide 1 Moyenne 2 lente 3 2 Prenez les chiffres suivants comme constantes dans votre programme la fois pour les vitesses et pour les temps RAPIDE 1F40 8 000 d cimal MOYENNE 1B58 7 000 d cimal LENTE 1964 6 500 d cimal En r ponse aux choix de la vitesse et du temps total votre programme devra appeler une sous routine avec passage de param tres par r f rences pour afficher le profile de la vitesse des deux moteurs De plus vous devrez afficher le temps d acc l ration TA le temps de vitesse constante TC le temps de vitesse total Ttotal et finalement le delta de voltage pour l acc l ration et la d c l ration DeltaV comme suit en supposant que le choix tait de 2 pour la vitesse et de 2 pour le temps total Profil de la vitesse Droit gauche Vitesse 01 170C 17D4 Vitesse 02 16A8 1838 Vitesse 03 1644 189C Vitesse 04 15E0 1900 Vitesse 05 157C 1964 Vitesse 06 1518 19C8 Vitesse 07 14B4 1A2C Vitesse 08 1450 1A90 52 Vitesse Vitesse Vitesse Vitesse Vitesse Vitesse Vite
100. te des directives de compilation pour vous aider compiler les lignes de votre code soit pour les boutons poussoirs du simulateur ou pour les boutons poussoirs de la carte d valuation dans le mode r el 62 Proc dez comme suit 1 Au d but du programme d clarez une tiquette Simulateur Si l tiquette gale 1 on compilera les lignes de code sp cialis s pour le simulateur sinon on compilera les lignes de code sp cialis s pour la carte d valuation Ex Simulateur EQU 1 si Simulateur 1 on compile le code du simulatur 2 Dans votre code utilisez les directives de compilation suivantes if else et endif Exemple if Simulateur 0 on compile ce bout de code attendre PPO SofTec inDART HCS12 transition de 1 O pour PTPO else Sinon on compile ce bout de code attendre PPO Simulator transition de 0 1 pour PTPO endif fin du IF ELSE PRINCE 4x message d accus r ception de PTPO N B if else et endif ne sont pas des lignes de code mais des directives de compilation 63 2 2 LABORATOIRE 2b ES afficheur LCD et interruptions externes Le but de ce laboratoire est de continuer d exp rimenter les possibilit s des ports d entr es sorties en plus des diff rentes caract ristiques qu offrent les interruptions du microcontr leur HCS12 A partir d une interruption externe votre programme devra crire un message appropri sur un afficheur cristaux liquide LCD Pl
101. ter enable interrupts X contains counter update global store result larger values cause overflow restart numbers Argument is in X Second last last loop once more if X was 1 were done already overwrite second last with new value exchange them order is correct again result in D 32 5437 56 5438 57 gORCKCkCk kk k K K k K K K K K K K K K Ck K K K K K K KOK K KOK K kk K kk K K K KOK K kk K KOK R kk kk ko R K KOR ke R KOK 5439 58 SG Interrupt Vectors 5440 59 g EKK KKK KKK K kk KR HR K K K K HR k k K K K k k KR K K k k k k K K K k k k oko HRK o ke kk k k k e ke 5441 60 ORG SFFFE 5442 61 a00FFFE 4000 DC W Entry Reset Vector Notez que le contenu de ce type de fichier sera expliqu en d tail un peu plus loin 33 1 1 5 Essai de l environnement Tout est en place pour diter compiler t l charger et d verminer un programme assembleur pour le microcontr leur MC9S12C32 Vous allez donc tester cet environnement partir d un programme de bienvenue qui vous est fourni un peu plus loin titre d exemple Ce programme a les propri t s suivantes 1 affiche un message de bienvenue sur l mulateur de terminal VT100 via une connexion s rielle RS232 en utilisant le module de t l communication SCI Serial Communication Interface 2 accepte des caract res partir d un clavier et en fait l cho sur le terminal jusqu ce que le caract re ENTER soit tap par l utilisateur 3 traduit
102. tre projet Fichier Readme txt If you would like to change the existing derivative with a different one you have to consider following points You will need to adapt the CodeWarrior project settings In the Assembler for HC12 and Compiler for HC12 panels make sure that the new CPU will be used in the Command Line Arguments HC12 CpuHC12 HCS12 CpuHCS12 HCSI2X Cp HCS12X The derivative header and source files are located in the following directories CodeWarrior lib hcl2c include derivative header files CodeWarrior libNhcl2cNsrc derivative source files You will need to drag and drop from the directories above the new derivative header and source files to the Libraries group HINT To open a Windows Explorer where the file is located Use the context menu right mouse click on the derivative header source file in the Libraries project folder and select Open in Windows Explorer For the HCS12 Serial Monitor Connection Use Processor HC12 and Connection HCS12 Serial Monitor Optional In case you need Command Files you can create empty files in the Project cmd directory In the debugger you can use the Command Files dialog in the Connection menu to adapt the debugger Now you have a new connection in the project For bug reports technical questions and suggestions please use the forms installed in the Release Notes folder and send them to cw_support freescale com 15 1 1 3
103. tte dur e nous donnons un compte de 6230d aux compteurs TC2 et TC3 du TIM Comme les moteurs sont invers s un par rapport l autre il s agit d envoyer la m me dur e chaque servomoteur pour pouvoir ex cuter un braquage court En braquage moyen il faut g n rer 85 4 impulsions pour une rotation de 90 degr s alors en braquage court nous aurons besoin de deux fois moins soit 42 7 impulsions Avec les erreurs de pr cision des moteurs et des mesures nous pouvons nous permettre de faire l approximation suivante 2 degr s de braquage par impulsion Reste donner la routine de service d interruption les trois informations suivantes 1 Vitesse du moteur droit 2 Vitesse du moteur gauche 3 Angle de braquage ou nombre d impulsions Une dur e d impulsion sup rieure 1 5ms aux servomoteurs produira un virage droite alors qu une dur e inf rieure 1 5ms produira un virage gauche 90 3 2 LABORATOIRE 3b Robot mobile Vous avez maintenant tous les l ments pour la mise en marche finale de votre robot mobile Cette mise en marche se fera en deux temps Dans un premier temps vous talonnez votre robot pour la position arr t et vous compensez la vitesse des moteurs pour la marche avant en ligne droite Dans un deuxi me temps vous ajustez vos r gles d inf rence du contr leur flou G n ralement l ajustement de ces r gles se fait par un expert ici l expert c est vous Vous tes enti re
104. uatri me colonnes Obj Code Codes objets en assembleur d une ligne source Cinqui me colonnes Sources line Code source que vous avez tap 41 Fichier Labl lst Freescale HC12 Assembler c Copyright Freescale 1987 2005 00 12 OY O1 4 amp N P O L I OY O1 E amp Ns ES N N NO N LS ho ND ho N DN O I OY O1 iS Q N gt O to 5538 5539 5540 5541 5542 5543 5544 5545 5546 5586 5587 O0 1 OY O1 4 QQ N P O L 1 OY O1 E amp Ns ES NO N NO N LS ho ND ho NN O J OY O1 Q N gt O L 118 119 15m 120 121 122 19m 20m 123 155 156 code a00401E a004022 a004024 a004026 a00402A a004059 00405D 004061 004065 004069 00406D 004071 004075 004079 00407D 004081 004085 a004088 00408C 15FB C10D 2706 15FB 20F2 4269 7665 6520 206C 6F72 6F69 2064 6D69 6FE9 6374 6E69 650A 6170 6971 BDEO BDDA 656E 6E75 6175 6162 6174 7265 6520 6372 6C65 726F 7175 OD 706C 75E9 E Source line I K Kk kk K K K K K K K K K K K K Ck K K K K K K K K K K KOR Ck k KOR K R K R K K K R K K K KOK k kk Ck ok KOK KOK KOK KOK R k K 7 n Auteur Maurice Tremblay Date avril 2007 Ce programme 1 affiche un message de bienvenue par une transmission s rielle de caract res
105. ur se situe l adresse FF8E L adresse contenue dans le vecteur d interruption sera donc l adresse de service de la routine d interruption du bouton PP1 La routine de service d interruption du PP1 devra a Activ une variable d urgence titre d exemple mettre le chiffre 0 dans la variable Urgence b Acquitter l interruption du port P en remettant le bit 1 du PIFP Port P Interrupt Flag Register 0 Pour ce faire il faut crire un 1 ce bit Ex movb S02 PIFP Accus r ception N B Le bouton PP1 sera utilis plus tard sur le robot mobile comme bouton d arr t d urgence 3 Pour afficher le message sur l afficheur LCD DMC 16117A de la compagnie OPTREX CORPORATION mont sur le robot mobile on suit la m me proc dure qu en mode 69 simulation L afficheur LCD en mode simulation a t configur pour r pondre comme un LCD DMC 16117A Figure 41 Afficheur LCD DMC 16117A 70 2 5 LABORATOIRE 2c Modulation de la dur e d impulsions Ce laboratoire vous permettra de moduler la dur e d impulsions pour le contr le de la vitesse des moteurs gauche et droit du robot mobile Pour ce faire vous devrez a Moduler la dur e d une impulsion partir des m canismes de sorties de signaux sur une comparaison d horloge output compare OCn o n repr sente un num ro de 0 7 correspondant aux broches de sorties du port T de PTO PT7 b Compter le nombre d impulsions qui se re
106. us tard cette interruption servira comme bouton d arr t d urgence pour le robot mobile et l afficheur LCD servira communiquer des informations l utilisateur du robot mobile 2 2 Proc dure 1 Attendre au d but du programme qu un bouton poussoir soit pouss avec la technique d interrogation polling identique au programme pr c dent 2 crire l cran un message d accuser r ception toujours identique au programme pr c dent 3 Ins rer un d lai d approximativement de 3 4 secondes en milliseconde avant d ex cuter le reste du programme Si durant le d lai de 3 4 secondes a en mode simulation un utilisateur a appuy sur une des clefs du clavier ou b en mode r el un utilisateur a appuy sur le bouton poussoir PP1 de la carte d valuation il faudra afficher sur l afficheur LCD simul ou r el les valeurs de voltage des trois capteurs IRs apr s le 4 seconde comme suit XX YY ZZ o XX est la valeur du voltage hexad cimal du capteur gauche YY est la valeur hexad cimal du voltage du capteur central et ZZ la valeur hexad cimale du voltage du capteur droit Le bouton poussoir ou la clef du clavier devront activer leur propre routine de service d interruption laquelle devra mettre un indicateur d urgence 0 une m moire RAM quelconque Si la sortie du d lai de 3 4 secondes l indicateur d urgence est 0 on proc dera l affichage des voltages des capteurs sur le LCD pour ensuite termine
107. uver TA et TC sachant que les temps d acc l ration et de d c l ration repr sentent chacun 20 du temps total Sauvegarder en RAM les valeurs 16 bits des temps TA TC et Ttotal La sous routine devra aussi calculer l intervalle de vitesse DelataV n cessaire pour r ajuster l acc l ration et la d c l ration 10 fois chacune et sauvegarder cette valeur de 16 bits en RAM 50 2 Faire une seconde sous routine l aide de la technique de passage de param tres par r f rences adresse DeltaV et adresse d un tableau de vitesse VMG en RAM qui sera en mesure de calculer les 10 vitesses d acc l ration les 10 vitesses de la vitesse constante et les 10 vitesses de la d c l ration Sauvegarder les 30 vitesses pour le moteur droit partir des adresses VMD et les 30 vitesses pour le moteur gauche la suite du tableau VMD c d VMG Pour le moment ignorez les valeurs de temps qui correspondent aux vitesses des moteurs Dans un premier syst me de contr le des moteurs le programme crira constamment les valeurs de la vitesse aux adresses M M 1 du moteur gauche et M 60 M 61 du moteur droit 51 1 4 LABORATOIRE 1d Sous routines d entr es sorties D BUG12M Ce laboratoire vous fournit l occasion d utiliser quelques sous routines d entr es sorties simul es D BUGI2 M de Motorola qui pourront vous aider tout au long de la session dans l laboration de vos programmes soit getchar putchar out2hex outdhex e
108. vOresaavi iva 3vIvOresaaviovd in 9 T1dddA 4u00 s lt S x leo SSA s 3l 1aaA V y SSA Yd vL V lt 00vd loyd ZL 13 00Qvd OL id Wd Svd 9 O tid fvd t 9 Zd Wd zZ OWd 193574 sad 23d 98d 0000000000 a 8900000000 0006000000 zi9999oooooo 107 dc PUS 120090 39vH31NI WCE OL GSN ZEOZLSOH Yd 39V38H31NI Wa OL 8Sfi 918r 060H 30I SSA IWSSA SSA ZLNAONSI HAONSI AWM Ld WEN WL d WON Ld FN Ld EVE Ld ewe Ld WaM Wd OWEMOWLd L1 sal Woda OVOTIA DIJA ld TW Old dx1 00 14 X191 031d 10H9 Hi lad loHOzL z31d 3 3ld ivald 103x952 3JXW95 2250 108 Gr 00GS Al UlOO OJOlUIO9 JOS MAMMA 001 1383 sla 380193801nv We 0 Hd
109. w will be executed OPEN Terminal 40 40 40 40 OPEN Push Buttons PBPORT 0258 OPEN LCD LCDPORT 0 1 5A 5A 5 Figure 37 Afficheur LCD en mode simulation 65 Le PORTB de 8 bits l adresse 0001 enverra l octet de contr le au LCD alors que le PORTA de 8 bits l adresse 0000 enverra les foncions ex cuter ou les caract res ASCII afficher au LCD Les ports d entr es sorties PORTA et PORTB devront tre initialis s en mode sortie c est dire mettre les registres DDRA et DDRB FF Data Direction Register A or B Mode d utilisation du LCD en mode simulation ou r el Le LCD en mode simulation ou r el peut afficher une ou deux lignes de 16 caract res avec ou sans curseur partir de ses deux registres de contr le branch s sur un port de contr le et un port de data comme le montre la figure 42 PORTA PORTB alele L bom SS Start data read write Select read or write D Write in the RAM Seleci register 1 Read from the RAM D Byte dzd will be considered as an instruction 1 Byte dyd will be considered as an ASCII code This version doesn t allow the read access The R W should never worth 1 Figure 38 Registres de contr le du LCD Le port de data peut servir la fois transmettre une commande ou un caract re ASCII au LCD d pendant de l tat du bit RS du port de contr le Pour envoyer un caract re au LCD il faut 1 mettre les bits E et RS lt 1
110. xte pour la fonction printf NOLIST PARKER EEK 1 k k 1k Kk k k k k k koe k k k k k k k k k K KOR K K KK K K K K K R KOK Sek KOK K K khe k R KOR R kk ke KOK KOK KOK KOK R R RK R R Inclusion du fichier D BUG12M ASM K Ck x x k k lt kk ck kk Ck x lt k x lt x lt Ck k x K K lt kk x lt k k kk lt k k Sk kk k k k k k Sk kk kk Sk kk k k k ko k k kv A k ko k X lt lt INCLUDE D BUG12M ASM Fichier pour la simulation des fonctions D BUG12 LIST jrkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk p Ui Vecteur d interruption pour le reset Ck K k x k k K kk x k k K lt x lt k kk lt lt k x K lt lt K k x lt k lt K x kk k Ck Sk k k k k k lt k k k kk k k k k k k Sk ke k k ko ko ko KK X lt lt ORG SFFFE fdb Entry Reset END fin de compilation 37 1 1 7 Compilation Une fois que votre programme a t tap et sauvegard vous pouvez le compiler et corriger vos erreurs de syntaxe Metrowerks Code Warrior le Edit view Search MES Debug Processor Expert Window Help SofTec_inDART HCS12 Creat gment Overi Create Design ur Files Link Order Targets al z Check Syntax Ctr I Bl readme txt iion x Sources Precompile 4 B tpt asm B tpi Ist n P EP isassemble i em Le E bl Ctri Shift F7 4 uiner t E 3 Debugger Project File Bring Up To Date CtrHU E Simulator ini Make F7 E SofTec inDART
Download Pdf Manuals
Related Search
Related Contents
Indesit WE 16 S Washer/Dryer User Manual Embedded Linux USB Driver User Guide view specification data sheet Copyright © All rights reserved.
Failed to retrieve file