Computertechniek 1 Les 2 onderwerpen MPLAB Herhaling instructieset
Computertechniek 1 Les 2 - onderwerpen MPLAB • Herhaling instructieset • De assembler en de simulator • Assembler pseudo-instructions • Programmeren 1: delay N ms • Programmeren 2: jumptable Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren
Computertechniek Instructies: file + w => file /w Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 2
Computertechniek Instructies: bit set/clear, bit test Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 3
Computertechniek Instructies: file + literal => file /w, diversen Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 4
Computertechniek 5 MPLAB IDE : Integrated Development Environment • Project management • Editor • Assembler • Programmer/debugger interface(s) • Integration of third-party tools (compilers) Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren
Computertechniek 6 Gebruik van MPLAB (Zie ook de MPLAB quick start guide op de Microchip website ) • Start MPLAB • Controleer: Configure Select Device 16 F 688 • (als je het bordje hebt aangesloten) Controleer: Programmer Select Programmer 5 PICkit 1 • Start een project: Project New kies een project naam, zet project directory naar keuze lokaal, op je USB stick, of op (in directory in) je network drive • Of open een bestaand project: Project Open kies een bestaand project • Een nieuwe file creeren: File New; File Save As mag zelfde naam als project (als het de hoofdfile is, of als je maar 1 file gebruikt) • Een assembler file toevoegen aan een project: Project Add Files to Project double click to add the file as source file Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren
Computertechniek Gebruik van de assembler • Check: edit properties editor tab zet “line numbers’ aan • Edit je file (saven is niet nodig maar wel verstandig) • Assembleren en linken: Project Build All • Herhalen tot de fouten en warnings eruit zijn! Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 7
Computertechniek Gebruik van de simulator • • • Debugger select tool MPLAB SIM Debugger reset processor reset (F 6) Debugger Clear Memory GPRs (let op!) Debugger step into (F 7) View 4 File Registers View 5 Special Function Registers (Waarden die in de vorige stap zijn veranderd worden rood weergegeven. ) Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 8
Computertechniek Gebruik van de simulator • Stap nu een aantal keren tot je denkt dat je programma-lus goed werkt (F 6) • Double-click op de regel na een loop om een breakpoint te zetten • Debugger Run (F 9) • Controleer of het resultaat klopt Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 9
Computertechniek PIC 16 F 688 memory map Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 10
Computertechniek Assembler : variabelen Absolute adressen: movfw H’ 20’ movwf H’ 21 Met #define of EQU: #define A H’ 20’ B EQU H’ 21’ movfw A movwf B Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 11
Computertechniek Assembler : variabelen cblock 0 x 20 ; name_1, name_2 name_3, name_4 ; endc. . . cblock name_5, name_6 endc Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 12
Computertechniek Assembler template (zie website) list p=16 f 688, f=inhx 32 #include <P 16 F 688. INC> __CONFIG _INTRC_OSC_NOCLKOUT & _WDT_OFF & … movlw. B'01110000' bsf H'03', 5 movwf H'8 F' bcf H'03', 5 org 0 cblock H’ 20’ endc ; hier komt uw code sleep END Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 13
Computertechniek 14 Een stukje van PIC 16 F 688. INC ; ----- Register Files--------------INDF TMR 0 PCL STATUS FSR PORTA EQU EQU EQU H'0000' H'0001' H'0002' H'0003' H'0004' H'0005' PORTC EQU H'0007' PCLATH INTCON PIR 1 EQU EQU H'000 A' H'000 B' H'000 C' Staat op C: /Program Files/MPLAB IDE/MCh. IP_Tools Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren
Computertechniek Programmeren 1: Een delay subroutine • • Een instructie duurt 0. 5 us (8 MHz, 2 MIPS) Een ‘geskipte’ instructie ook! Behalve GOTO, CALL, RETURN: 1 us Maak een subroutine die W ms wacht • Test dmv de stopwatch/instructie counter Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 15
Computertechniek PIC 16 F 688 memory map Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 16
Computertechniek 17 PC manipulatie • PCL is de laagste 8 bits van de program counter (PC) • Maar: schrijven naar PCL schrijft die waarde naar PC[0. . 7], + PCLATH naar PC[8. . ] • Hiermee kan je een jumptable maken: spring naar een plek N plaatsen verder • Nuttig in combinatie met RETLW X Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren
Computertechniek Programmeren 2: Een jump table • Maak een subroutine die afhankelijk van de waarde in W bij de aanroep een waarde in W teruggeeft: 0 0 1 1 2 4 3 9 … 9 81 • Boven 9 is het effect niet gedefinieerd Maak een overtuigende test! Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren 18
- Slides: 18