Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
ZveřejnilJaromír Němeček
1
Odborný výcvik ve 3. tisíciletí Tato prezentace byla vytvořena v rámci projektu
2
Tento projekt je spolufinancován Evropským sociálním fondem a státním rozpočtem České republiky MEIV-1.3.2 Návrh a výroba konstrukcí s mikropočítači AVR Obor: Mechanik elektronik Ročník:4. Vypracoval:Antonín Mahdal Odborný výcvik ve 3. tisíciletí
3
Začínáme s programováním ● V prvním kroku si spustíme nějaký textový editor nebo, v našem případě rovnou vývojové prostředí AVR Studio 4. ● V dalším kroku vybereme záložku nový projekt nebo otevřít již vytvořený projekt.
4
AVR Studio 4 ● Ve druhém okně vybereme položku AtmelAVR Assembler a napíšeme název našeho programu.
5
● Dále postupujeme dle obrázku vyberemé z nabídky AVR Simulátor a ve druhém sloupci konkrétní typ mikrokon- troleru. ● AVR Studio 4
6
Samotný program ● Nyní přepíšeme uvedený program. ● Dobrým zvykem bývá uvést na začátku programu záhlaví, které obsahuje datum, název, verzi a autora programu. ● V našem případě kvůli nedostatku místa na prezentaci neuvádíme.. NOLIST.INCLUDE "2313def.inc".LIST LDI REG,$00 OUT DDR,REG ;aktivuj výstupy LDI REG,LOW(RAMEND) OUT SPL,REG ;nastav SP na konec SRAM LDI REG,HIGH(RAMEND) SEC ;1 do C LDI REG,$0 ;0 do REG SMYCKA: OUT PORT,REG ;pošli RCALL ČASOVANI;počkej 0,5 s ROL REG ;posuň RJMP SMYCKA ;a znovu; čekací rutina (čeká asi 0,5 s) ČASOVANI: LDI R17,1 LDI R18,1 LDI R19,1 ČASOVANI1: DEC R19 BRNE ČASOVANI1 ;smyčka 1 DEC R18 BRNE ČASOVANI1 ;smyčka 2 DEC R17 BRNE ČASOVANI1 ;smyčka 3 RET ;návrat
7
Popis samotného programu ● Nyní si popíšeme první řádky programu. ● Direktiva.NONLIST slouží k řízení výpisu překldu, konkrétně vypíná generování výpisu. ●.INCLUDE slouží k vložení souboru s disku do zdrojového obsahu programu. ●.LIST sděluje překladači, že má začít generaci výpisu..NOLIST.INCLUDE "2313def.inc".LIST
8
Soubory „def“ Říkali jsme si totiž, jak jsou v paměti registry uloženy (pmocí strojového kódu). Abychom však k nim mohli pracovat pod nějakým srozumitelnýn jménem a nemuseli jsme je volat adresou, musíme si je nejprve pojmenovat. A právě tato pojmenování jsou obsažena v souboru 2313def.inc. (Pozor, pro každý typ procesoru musíme vložit jiný soubor)!.equSREG= 0x3f.equSPL= 0x3d.equGIMSK= 0x3b.equGIFR= 0x3a.equTIMSK= 0x39.equTIFR= 0x38.equMCUCR= 0x35
9
Popis samotného programu Jedná se o vhodné umístění zásobníku PC (program counter) na určitou adresu v paměti. Jelikož se však nachází po zapnutí napájení ukazatel na 0, je nutné ho umístit na jiné, vhodnější, místo. (Nejlépe na konci RAM). Tím nám nebude zasahovat do jiných používaných dat. LDI REG,LOW(RAMEND) OUT SPL,REG ;nastav SP na konec SRAM LDI REG,HIGH(RAMEND)
10
● Níže je uvedený hlavní program, který vykonává požadovanou funkci. Popis samotného programu SMYCKA: OUT PORT,REG ;pošli RCALL ČASOVANI;počkej 0,5 s ROL REG ;posuň RJMP SMYCKA ;a znovu; čekací rutina (čeká asi 0,5 s)
11
● Nastavení parametrů časování. ● Nastavíme registry R17, R18, R19. Popis samotného programu ČASOVANI: LDI R17,1 LDI R18,1 LDI R19,1
12
Myslím si, že je jasné, co tento podprogram dělá. Po každém zavolání sníží hodnotu v registru R19 o jedno. Porovná ho s obsahem registru R18, skočí rovnou na konec. Nakopak když je roven nebo vetší, tak se vynuluje a pokračuje ta samá procedura s registrem R17. Popis samotného programu ČASOVANI1: DEC R19 BRNE ČASOVANI1 ;smyčka 1 DEC R18 BRNE ČASOVANI1 ;smyčka 2 DEC R17 BRNE ČASOVANI1 ;smyčka 3 RET ;návrat
13
Závěr Ukázali jsme si krátký program na rolování registru. Program si zkuste odsimulovat v AVR studiu, případně vyzkoušejte přímo s procesorem a zkuste sami sobě vysvětlit, jak program funguje.
14
Střední průmyslová škola Uherský Brod, 2010 www.sps-ub.cz
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.