ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
Fakulta e lekt rotechnická K 13114 Technická 2, 166 27 Praha 6
Y14SAP – Struktura a architektura počí tačů 1 / 12
Vzorový příklad pro práci v prostředí MPLAB Zadání: Vytvořte program, který v intervalu 200ms točí doleva obsah registru reg, a který při stisku tlačítka
RB0 nastaví bit 0 v registru reg na hodnotu 1. Obsah registru reg se zobrazí na LED připojené na PORT D. Rotaci a detekci stisku tlačítka proveďte v přerušení.
Postup řešení v MPLAB:
1. Založení nového projektu (Project -> Project Wizard)
2. Volba typu procesoru
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
Fakulta e lekt rotechnická K 13114 Technická 2, 166 27 Praha 6
Y14SAP – Struktura a architektura počí tačů 2 / 12
3. Volba programovacích nástrojů (není potřeba nic měnit, pouze potvrdit stiskem Další)
4. Pojmenování nového projektu (stisknutím Browse otevřít okno v něm najít požadovanou složku nebo vytvořit novou, napsat jméno souboru a stisknout Save).
Pak by okno mělo vypadat takto
5. Okno vložení souboru přeskočit kliknutím na Další 6. Kontrola zadaných údajů (potvrdit stisknutím Dokončit )
Typ procesoru(viz. bod 2)
Programovací nástroje (viz. bod 3)
Cesta a jméno projektu (viz. bod 4)
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
Fakulta e lekt rotechnická K 13114 Technická 2, 166 27 Praha 6
Y14SAP – Struktura a architektura počí tačů 3 / 12
7. Zobrazení jednotlivých oken v MPLAB (View -> Project, View -> Output)
8. Vložení souboru pro psaní programu (Project -> Add New File to Project) soubor pojmenovat a uložit s příponou *.asm
Sem patří kód programu
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
Fakulta e lekt rotechnická K 13114 Technická 2, 166 27 Praha 6
Y14SAP – Struktura a architektura počí tačů 4 / 12
9. Připojení skriptu pro Linker (Project -> Add File to Project -> Soubory typu *.lkr) najít soubor 18f87j11_g.lkr. (Bude na síťovém disku).
10. Tvorba kódu
Tyto řádky jsou NEZBYTNĚ nutné. Jejich nedodržení povede k nefunkčnosti celého programu.
Hlavička souboru, pro přehlednost je dobré ji vytvořit
Konfigurační bity (nastavují
základní chování
procesoru)
Informace pro překladač, pro jaký procesor se program
píše
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
Fakulta e lekt rotechnická K 13114 Technická 2, 166 27 Praha 6
Y14SAP – Struktura a architektura počí tačů 5 / 12
11. Deklarace proměnných
Deklarace pomocí bloku
neinicializovaných dat
Začíná na adrese 0x000
POUŽÍVAT
Přiřazení místa paměti symbolickému jménu.
V našem případě NEPOUŽÍVAT
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
Fakulta e lekt rotechnická K 13114 Technická 2, 166 27 Praha 6
Y14SAP – Struktura a architektura počí tačů 6 / 12
12. Struktura programu
Na adrese 0x0000 startuje
procesor po resetu
Odskok na začátek
programu (návěští main)
Adresa vektoru přerušení
Uložení kontextu
NEZBYTNÉ
Obnovení kontextu a návrat z přerušení
NEZBYTNÉ
Tělo programu
Konec programu
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
Fakulta e lekt rotechnická K 13114 Technická 2, 166 27 Praha 6
Y14SAP – Struktura a architektura počí tačů 7 / 12
13. Obsluha přerušení – doplnění kódu
14. Hlavní tělo programu
Nulování příznaku přerušení
NEZBYTNÉ
Příkazy prováděné v
přerušení
Smyčka prováděná na pozadí programu
Inicializace procesoru
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
Fakulta e lekt rotechnická K 13114 Technická 2, 166 27 Praha 6
Y14SAP – Struktura a architektura počí tačů 8 / 12
15. Překlad kódu (Project -> Build all)
16. Požadovaný výsledek překladu
17. Ladění programu pomocí MPLAB SIM (Debugger -> Select Tool -> MPLAB SIM)
Ovládání debuggeru
Nastavení debuggeru
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
Fakulta e lekt rotechnická K 13114 Technická 2, 166 27 Praha 6
Y14SAP – Struktura a architektura počí tačů 9 / 12
18. Nastavení MPLAB SIM (Debugger -> Settings)
19. Vložení Breakpointu a určení doby trvání úseku programu (Debugger -> StopWatch) Breakpoint se vloží dvojklikem na řádku kódu
Pozice zastavení programu ve
zdrojovém kódu Čas potřebný k dosažení aktuální
pozice
Frekvence procesoru 10 MHz
Velikost bufferu pro logický analyzátor
10 M lines (odpovídá cca 4s
simulace)
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
Fakulta e lekt rotechnická K 13114 Technická 2, 166 27 Praha 6
Y14SAP – Struktura a architektura počí tačů 10 / 12
20. Pohled na obsah registrů (View -> Watch)
Hodnotu některých registrů lze v okně Watch také měnit dvojklikem na sloupec Value a vložením požadované hodnoty.U některých SFR registrů změna není možná (např. PORTB), pak je pro simulaci nutné SFR registr nahradit jiným „virtuálním“ registrem a před finálním překladem programu pro nahrání do desky změnu vrátit zpět.
Hodnota v registru REG
Jméno registru
Výběr proměnné, pak
stisknout Add Symbol
Výběr SFR registru
Výběr SFR registru, pak
stisknout Add SFR
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
Fakulta e lekt rotechnická K 13114 Technická 2, 166 27 Praha 6
Y14SAP – Struktura a architektura počí tačů 11 / 12
21. Simulace pomocí logického analyzátoru (View -> Simulator Logic Analyzer), vložení proměnných stisknutím Channels
Po startu simulace začne signály zobrazovat i okno analyzátoru
Další možností je volba debuggeru přímo ICD3 (Debugger -> Select Tool -> MPLAB ICD3). Program pak lze obdobným způsobem ladit přímo v procesoru. Nevýhodou je nižší rychlost a maximální počet 3 breakpointů.
Výběr registrů pro zobrazení
Zobrazované registry
Přidání registrů mezi zobrazované
ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE
Fakulta e lekt rotechnická K 13114 Technická 2, 166 27 Praha 6
Y14SAP – Struktura a architektura počí tačů 12 / 12
22. Překlad a nahrání programu do procesoru (Programmer -> Select Programmer -> MPLAB ICD3)
Ovládání programátoru
Úspěšné připojení ICD3