PowerPoint-presentatie

advertisement
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
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  16F688
• (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 (F6)
Debugger  Clear Memory  GPRs (let op!)
Debugger  step into (F7)
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 (F6)
• Double-click op de regel na een loop om een
breakpoint te zetten
• Debugger  Run (F9)
• Controleer of het resultaat klopt
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology
; PIC assember programeren
9
Computertechniek
PIC16F688
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
cblock 0x20 ;
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=16f688, f=inhx32
#include <P16F688.INC>
__CONFIG _INTRC_OSC_NOCLKOUT & _WDT_OFF & …
movlwB'01110000'
bsf
H'03', 5
movwf
H'8F'
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 PIC16F688.INC
;----- Register Files----------------------------INDF
TMR0
PCL
STATUS
FSR
PORTA
EQU
EQU
EQU
EQU
EQU
EQU
H'0000'
H'0001'
H'0002'
H'0003'
H'0004'
H'0005'
PORTC
EQU
H'0007'
PCLATH
INTCON
PIR1
EQU
EQU
EQU
H'000A'
H'000B'
H'000C'
Staat op C:/Program Files/MPLAB IDE/MChIP_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
PIC16F688
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
Download