Les 2 - onderwerpen

27
Hogeschool Utrecht / Institute for Computer, Communication a nd Media Technology 1 2PROJ5 – PIC assembler Les 2 - onderwerpen Helaas nog geen printjes Uitwerking opgaven 1 en 2 Herhaling instructieset Assembler ‘truukjes’ • MPLAB • Simuleren Opgaven: delay W ms, jumptable

description

Les 2 - onderwerpen.  Helaas nog geen printjes Uitwerking opgaven 1 en 2 Herhaling instructieset Assembler ‘truukjes’ MPLAB Simuleren Opgaven: delay W ms, jumptable. oefening 1 : optellen. ; tel de variabelen H'20' en H'21' op, ; stop de som in H'22' movf H'20', w addwf H'21', w - PowerPoint PPT Presentation

Transcript of Les 2 - onderwerpen

Page 1: Les 2 - onderwerpen

Hogeschool Utrecht / Institute for Computer, Communication and Media Technology

12PROJ5 – PIC assembler

Les 2 - onderwerpen

Helaas nog geen printjes• Uitwerking opgaven 1 en 2• Herhaling instructieset• Assembler ‘truukjes’ • MPLAB• Simuleren• Opgaven: delay W ms, jumptable

Page 2: Les 2 - onderwerpen

Hogeschool Utrecht / Institute for Computer, Communication and Media Technology

22PROJ5 – PIC assembler

oefening 1 : optellen

; tel de variabelen H'20' en H'21' op,

; stop de som in H'22'

movf H'20', w

addwf H'21', w

movwf H'22'

sleep ; zet dit na je code

end ; zet dit aan het einde van je file

Page 3: Les 2 - onderwerpen

Hogeschool Utrecht / Institute for Computer, Communication and Media Technology

32PROJ5 – PIC assembler

SUBWF instruction (1)

Page 4: Les 2 - onderwerpen

Hogeschool Utrecht / Institute for Computer, Communication and Media Technology

42PROJ5 – PIC assembler

SUBWF instruction (2)

Page 5: Les 2 - onderwerpen

Hogeschool Utrecht / Institute for Computer, Communication and Media Technology

52PROJ5 – PIC assembler

oefening 2 : maximum (1); bepaal het maximum van de variabelen H'20' en H'21'; stop dit maximum in H'22‘(9 instructies)

; vergelijkmovfw H'20'subwf H'21', w ; H’21’ – H’20’skpnc ; C resultaat is positief H’22’ is kleiner goto kleiner ; C neem H’21’

; als we hier komen was H'20' dus grotermovfw H'20'movwf H'22'goto klaar

; als we hier komen was H'21' groterkleiner

movfw H'21'movwf H'22'

klaar

Page 6: Les 2 - onderwerpen

Hogeschool Utrecht / Institute for Computer, Communication and Media Technology

62PROJ5 – PIC assembler

oefening 2 : maximum (2); dat kan ook wat korter (6 instructies)

; neem aan dat H'20' het maximum ismovf H'20', wmovwf H'22'

; vergelijk met H'21'; movfw H'20' is niet nodig, dat zit al in Wsubwf H'21', w

; dit beinvloedt de C flag niet!!!movf H'21', wskpnc movfw H'22'

Page 7: Les 2 - onderwerpen

Hogeschool Utrecht / Institute for Computer, Communication and Media Technology

72PROJ5 – PIC assembler

oefening 2 : maximum (3)

; of zo (ook 6 instructies)

; vergelijkmovfw H'20'subwf H'21', w

; dit beinvloed de flags niet!!!movf H'20', wskpnc movf H'21', wmovwf H'22'

Page 8: Les 2 - onderwerpen

Hogeschool Utrecht / Institute for Computer, Communication and Media Technology

82PROJ5 – PIC assembler

Instructies: file + w => file of w

Page 9: Les 2 - onderwerpen

Hogeschool Utrecht / Institute for Computer, Communication and Media Technology

92PROJ5 – PIC assembler

Instructies: bit set/clear, bit test

Page 10: Les 2 - onderwerpen

Hogeschool Utrecht / Institute for Computer, Communication and Media Technology

102PROJ5 – PIC assembler

Instructies: file ‘op’ literal => file of w, diversen (control)

Page 11: Les 2 - onderwerpen

Hogeschool Utrecht / Institute for Computer, Communication and Media Technology

112PROJ5 – PIC assembler

Assembler “truukjes”

• Ingebouwd:SKPZ, SKPNZ, SKPC, SKPNCSTEC, CLRC, SETZ, CLRZMOVFW

• Macro’s:#define W 0#define F 1Let op mogelijke fouten, wat doet:

RRC W, F

Page 12: Les 2 - onderwerpen

Hogeschool Utrecht / Institute for Computer, Communication and Media Technology

122PROJ5 – PIC assembler

Meer assembler “truukjes”

Page 13: Les 2 - onderwerpen

Hogeschool Utrecht / Institute for Computer, Communication and Media Technology

132PROJ5 – PIC assembler

MPLAB IDE

IDE : Integrated Development Environment

• Project management

• Editor

• Assembler

• Programmer/debugger interface(s)

• Integration of third-party tools (compilers)

Page 14: Les 2 - onderwerpen

Hogeschool Utrecht / Institute for Computer, Communication and Media Technology

142PROJ5 – PIC assembler

Gebruik van MPLAB(Zie ook de MPLAB quick start guide op de Microchip website )• Start MPLAB• Controleer: Configure Select Device 16F917• 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 (heel erg lange pad-namen kunnen problemen geven)

• 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

Page 15: Les 2 - onderwerpen

Hogeschool Utrecht / Institute for Computer, Communication and Media Technology

152PROJ5 – PIC assembler

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!

Page 16: Les 2 - onderwerpen

Hogeschool Utrecht / Institute for Computer, Communication and Media Technology

162PROJ5 – PIC assembler

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.)

Page 17: Les 2 - onderwerpen

Hogeschool Utrecht / Institute for Computer, Communication and Media Technology

172PROJ5 – PIC assembler

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

Page 18: Les 2 - onderwerpen

Hogeschool Utrecht / Institute for Computer, Communication and Media Technology

182PROJ5 – PIC assembler

Doen

test je ‘vermenigvuldig’ programma in de simulator

Page 19: Les 2 - onderwerpen

Hogeschool Utrecht / Institute for Computer, Communication and Media Technology

192PROJ5 – PIC assembler

PIC16F917 memory map

Page 20: Les 2 - onderwerpen

Hogeschool Utrecht / Institute for Computer, Communication and Media Technology

202PROJ5 – PIC assembler

Assembler : variabelen

Absolute adressen:

Met #define of EQU:

movfw H’20’

movwf H’21

#define A H’20’

B EQU H’21’

movfw A

movwf B

Page 21: Les 2 - onderwerpen

Hogeschool Utrecht / Institute for Computer, Communication and Media Technology

212PROJ5 – PIC assembler

Assembler : variabelencblock

cblock 0x20name_1, name_2 name_3, name_4

endc ...cblock

name_5 name_6 : 2

endc

Page 22: Les 2 - onderwerpen

Hogeschool Utrecht / Institute for Computer, Communication and Media Technology

222PROJ5 – PIC assembler

Assembler template (zie website)

list p=16f917, f=inhx32#include <P16F917.INC>

org 0cblock H’20’ endc

; hier komt uw code

sleepEND

Page 23: Les 2 - onderwerpen

Hogeschool Utrecht / Institute for Computer, Communication and Media Technology

232PROJ5 – PIC assembler

Een stukje van PIC16F917.INC ;----- Register Files-----------------------------

INDF EQU H'0000'TMR0 EQU H'0001'PCL EQU H'0002'STATUS EQU H'0003'FSR EQU H'0004'PORTA EQU H'0005'

PORTC EQU H'0007'

PCLATH EQU H'000A'INTCON EQU H'000B'PIR1 EQU H'000C'

Staat op C:/Program Files/MPLAB IDE/MChIP_Tools

Page 24: Les 2 - onderwerpen

Hogeschool Utrecht / Institute for Computer, Communication and Media Technology

242PROJ5 – PIC assembler

Programmeren 1: Een delay subroutine

• Een instructie duurt 0.2 us (20 MHz, 5 MIPS)• Een ‘geskipte’ instructie ook!• Behalve GOTO, CALL, RETURN: 0.4 us

Maak een subroutine die W ms wacht

• Test dmv de stopwatch/instructie counter

Page 25: Les 2 - onderwerpen

Hogeschool Utrecht / Institute for Computer, Communication and Media Technology

252PROJ5 – PIC assembler

PC manipulatie

• PCL is de laagste 8 bits van de program counter (PC)

• Maar: schrijven naar PCL schrijft die waarde naar PC[0..7], en PCLATH naar PC[8..]

• Hiermee kan je een jumptable maken: spring naar een plek N plaatsen verder

• Nuttig in combinatie met RETLW X

Page 26: Les 2 - onderwerpen

Hogeschool Utrecht / Institute for Computer, Communication and Media Technology

262PROJ5 – PIC assembler

PC manipulatie

Page 27: Les 2 - onderwerpen

Hogeschool Utrecht / Institute for Computer, Communication and Media Technology

272PROJ5 – PIC assembler

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; neem aan dat de waarde in PCLATH in order is

Maak een overtuigende test!