De presentatie wordt gedownload. Even geduld aub

De presentatie wordt gedownload. Even geduld aub

2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 3 - onderwerpen Instruction timing Shadow.

Verwante presentaties


Presentatie over: "2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 3 - onderwerpen Instruction timing Shadow."— Transcript van de presentatie:

1 2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 3 - onderwerpen Instruction timing Shadow port registers, Macro’s Opgaves: delay, IO_SET/IO_CLEAR, Kitt

2 2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 2 Opmerkingen Fouten in het DB038 document: graag doorgeven! Laptop gebruikers: USB power management uitzetten VMWare: soms komt de USB connectie in de root- PC terecht in plaats van in de gesimuleerde PC  Bewaar je bordje tussen dat zwarte schuim, maar zet ‘m er niet op als je ‘m gebruikt. Ook niet op een geleidend oppervlak!

3 2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 3 Instruction timing Shadow port registers, Macro’s Register file banks Gebruik van het DB038 bord Aftekenen vorige opgaves Twee nieuwe opgaves

4 2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 4 Programmeer opgave 1: Een delay subroutine Maak een subroutine die W ms wacht (nauwkeurigheid 1% of beter) Test dmv de stopwatch/instructie counter in de simulator.

5 2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 5 Een W * 1 ms delay int i = W; while( i > 0 ){ i--; delay_1ms(); }

6 2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 6 Instruction timing 20 MHz / 4  5 MIPS Dus 0.2 us per instructie Behalve als de PC geschreven wordt (GOTO, CALL, RETURN), dan 0.4 us

7 2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 7 Een Delay_1ms 5 MIPS, dus 1 ms is 5000 instructies* In 8 bit kan je tot 256 tellen, neem 250 1 keer door de lus moet dan 5000 / 250 = 20 instructies zijn * GOTO etc. tellen voor 2

8 2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 8 Delay_1ms : eerste poging cblock teller endc movlw D’250’ movwf teller loop: decfsz teller, f goto loop Hoeveel vertraging moeten we nog toevoegen, en waar precies?

9 2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 9 Een paar instructies vertraging (1) loop:nop ; 17 NOPs... nop decfsz teller, f goto loop

10 2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 10 Een paar instructies vertraging (2) nop4:macro nop enmd loop:nop nop4 decfsz teller, f goto loop

11 2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 11 Een paar instructies vertraging (3) delay_4:return cblock teller endc movlw D’250’ movwf teller loop: nop call delay_4 decfsz teller, f goto loop

12 2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 12 Een paar instructies vertraging (4) delay_16:call delay_4 delay_12:call delay_4 delay_8:call delay_4 delay_4:return cblock teller endc movlw D’250’ movwf teller loop: nop call delay_16 decfsz teller, f goto loop

13 2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 13 Een paar instructies vertraging (5) delay_2: macro goto $+1 endm delay_4:macro delay_2 endm delay_8: macro delay_4 endm delay_16:macro delay_8 endm

14 2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 14 Het ‘read-modify-write probleem Macro’s Shadow PORT registers

15 2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 15 read-modify-write : IO pin

16 2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 16 read-modify-write (fout) clrf PORTA bsf PORTA, 0 bsf PORTA, 1 bsf PORTA, 2 bsf PORTA, 3 bsf PORTA, 4 bsf PORTA, 5 bsf PORTA, 6 bsf PORTA, 7

17 2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 17 read-modify-write (goed) clrf PORTA_SHADOW call PORTA_FLUSH bsf PORTA_SHADOW, 0 call PORTA_FLUSH bsf PORTA_SHADOW, 1 call PORTA_FLUSH bsf PORTA_SHADOW, 2 call PORTA_FLUSH... PORTA_FLUSH movfw PORTA_SHADOW movwf PORTA return

18 2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 18 wat is een macro naam voor een aantal regels text wordt letterlijk ingevoegd RRFW macro movwf temp rrf temp, w endm

19 2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 19 wat is een macro Kan (textuele) parameters parameters hebben double macro REGISTER bcfSTATUS, C rlfREGISTER, f endm

20 2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 20 macro voorbeeld en gebruik FLUSH_MACRO MACRO Shadow, Port CBLOCK Shadow ENDC MOVFW Shadow MOVWF Port RETURN ENDM PORTA_FLUSHFLUSH_MACRO PORTA_SHADOW, PORTA PORTB_FLUSHFLUSH_MACRO PORTB_SHADOW, PORTB PORTC_FLUSHFLUSH_MACRO PORTC_SHADOW, PORTC PORTD_FLUSHFLUSH_MACRO PORTD_SHADOW, PORTD PORTE_FLUSHFLUSH_MACRO PORTE_SHADOW, PORTE

21 2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 21 Macro  Subroutine een macro is een reeks regels die ingevoegd wordt een macro kan assembly-time argumenten hebben macro heeft geen call/return (gebruikt de stack niet) subroutine aanroep is altijd 1 statement; macro ‘aanroep’ voegt de complete macro in (je programma wordt al snel erg groot)

22 2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 22 Macro – listing (.lst)

23 2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 23 Programmeer opgave 2: I/O pin set en clear macro’s Schrijf de macro’s IO_SET en IO_CLEAR met twee parameters X en Y. X moet een poort register zijn (PORTA, PORTB, etc), B een bit (0..7). De macro moet het betreffende bit in het shadow register zetten, en dan een subroutine ‘FLUSH_ALL’ aanroepen. Schrijf ook de FLUSH_ALL subroutine.

24 2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 24 Programmeer opgave 3: KITT / Knight Rider Maak een ‘Kitt’ display op de LEDs. Iedere stap in de sequence moet 250 ms zijn. Gebruik de IO_SET en IO_CLEAR macro’s voor het aan en uit zetten van de LEDs.


Download ppt "2PROJ5 – PIC assembler Hogeschool Utrecht / Institute for Computer, Communication and Media Technology 1 Les 3 - onderwerpen Instruction timing Shadow."

Verwante presentaties


Ads door Google