Les 6 - onderwerpen

20
Hogeschool van Utrecht / Institute for Computer, Communicati on and Media Technology ; PIC assember programeren 1 Computertechniek Les 6 - onderwerpen • Errata • PC Indirect adresseren Read analog inputs • EEPROM Zend en ontvang een IR signaal • Muziek Geef door wat je ‘eigen’opdracht is • Solderen

description

Les 6 - onderwerpen. Errata PC Indirect adresseren Read analog inputs EEPROM Zend en ontvang een IR signaal Muziek Geef door wat je ‘eigen’opdracht is Solderen. Pas op : foutje in de sheets van vorige week. De reset knop ‘aanzetten’. ; configuration settings - PowerPoint PPT Presentation

Transcript of Les 6 - onderwerpen

Page 1: Les 6 - onderwerpen

Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren

1Computertechniek

Les 6 - onderwerpen

• Errata• PC• Indirect adresseren• Read analog inputs• EEPROM• Zend en ontvang een IR signaal• Muziek • Geef door wat je ‘eigen’opdracht is• Solderen

Page 2: Les 6 - onderwerpen

Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren

2Computertechniek

Pas op : foutje in de sheets van vorige week

Page 3: Les 6 - onderwerpen

Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren

3Computertechniek

De reset knop ‘aanzetten’

; configuration settings

#define _CONFIG_A _FCMEN_OFF & _IESO_ON & _BOD_ON & _CPD_OFF

#define _CONFIG_B _CP_OFF & _MCLRE_OFF & _PWRTE_ON & _WDT_OFF__CONFIG _CONFIG_A & _CONFIG_B & _INTRC_OSC_NOCLKOUT

Veranderen naar:

; configuration settings

#define _CONFIG_A _FCMEN_OFF & _IESO_ON & _BOD_ON & _CPD_OFF

#define _CONFIG_B _CP_OFF & _MCLRE_ON & _PWRTE_ON & _WDT_OFF__CONFIG _CONFIG_A & _CONFIG_B & _INTRC_OSC_NOCLKOUT

Page 4: Les 6 - onderwerpen

Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren

4Computertechniek

END directive

• Puur voor de assembler om het einde van de source aan te geven (stamt uit de tijd van papertape en punch-cards)

• Twee manieren om de processor te laten ‘stoppen’:

sleep ; speciale instructie

klaar ; eeuwige lusgoto klaar

Page 5: Les 6 - onderwerpen

Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren

5Computertechniek

PC (1)

• De laagste 8 bits van de PC kan je lezen en schrijven via PCL

• 4k PC is 12 bits• Hoogste 6 bits komen uit PCLATH• Waarvoor gebruik je dit?

Page 6: Les 6 - onderwerpen

Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren

6Computertechniek

PC (2)

; data table

Get_Data:addwf PCL, f

retlw 0x11

retlw 0x21

retlw 0x44

Let op:• PCLATH bits• Onverwachte waarden in W

Page 7: Les 6 - onderwerpen

Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren

7Computertechniek

PC (3)

GOTO label

GOSUB label

De instructie bevat slechts 11 bits, het hoogste 2 bit komen wederom uit PCLATH.

PCLATH start op 0x00, dus hier heb je pas mee te maken als je meer dan 2k code schrijft.

Datasheet p21

Page 8: Les 6 - onderwerpen

Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren

8Computertechniek

Indirect adresseren

X = *A:movfw A

movwf FSR

movfw INDF

movwf X

FSR is een soort pointer, INDF is dan het ‘venster’ naar het aangewezen file register

FSR is 8 bits, dus het hoogste bit is page bit 0. Page bit 1 komt uit SATUS:IRP.

Page 9: Les 6 - onderwerpen

Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren

9Computertechniek

Read an analog input (1)

• Zet de juiste code op RA0 .. RA2 en RC0 .. RC2 voor de potentiometer of de LDR

• Zet de RC3 pin op input• Zet ANSEL op 0x80 (AN7 == RC3 is de analoge

input)

Page 10: Les 6 - onderwerpen

Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren

10Computertechniek

Read an analog input (2)

• Zet ADCON1 0x50

• Zet ADCON0 op 0x1D

• Wacht >= 100 us

Page 11: Les 6 - onderwerpen

Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren

11Computertechniek

Read an analog input (3)

• Zet het A/D start/busy bit aan• Wacht tot het A/D start/busy bit uit staat• Lees de waarde uit ADRESH

Page 12: Les 6 - onderwerpen

Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren

12Computertechniek

EEPROM - read

• 256 bytes data EEPROM• Read:

EEADR = <address>;EECON1 = 0;EECON1 = EECON1 | 1; /* bsf EECON1,0 */While( eecon1 & 1 );<data> = EEDAT;

Datasheet p73

Page 13: Les 6 - onderwerpen

Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren

13Computertechniek

EEPROM - write

EEADR = <address>;

EECON1 = 4;

EECON2 = 0x55;

EECON2 = 0xAA;

EECON1 = EECON1 | 2; /* bsf EECON1,1 */

While( eecon1 & 2 );

EECON1 = 0;

<data> = EEDAT;

Datasheet p73

Page 14: Les 6 - onderwerpen

Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren

14Computertechniek

De IR ontvanger (1)

• (alleen) gevoelig voor een 36 kHz signaal.

• Dat signaal mag niet continu zijn

Page 15: Les 6 - onderwerpen

Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren

15Computertechniek

De IR ontvanger (2)

(alleen) gevoelig voor een 36 kHz signaal.

Page 16: Les 6 - onderwerpen

Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren

16Computertechniek

De IR ontvanger (3)

Aanbevolen: puls >= 400uS, periode =< 0.4

Page 17: Les 6 - onderwerpen

Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren

17Computertechniek

De IR ontvanger (4)

Page 18: Les 6 - onderwerpen

Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren

18Computertechniek

Eenvoudig IR zenden en ontvangen

• 36 kHz 28 us per puls 28 instructies per fase (hoog of laag)

• 400 us / 28 us minimaal 14 pulsen, neem bv 30 pulsen

• Onmiddelijk daarna de IR ingang lezen (laag == signaal gedetecteerd)

• Wacht te minste 6/4 x de zendtijd• herhaal

Page 19: Les 6 - onderwerpen

Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren

19Computertechniek

Muziek

• Octaaf = verdubbeling van de frequentie• ‘centrale A’ = 440 Hz• Octaaf is verdeeld in 12 gelijke stappen• Dus stap^12 = 2 stap = 12√ 2• Klopt niet helemaal (‘gelijkzwevend’)• Niet uitrekenen, gewoon een tabel gebruiken

(zelf samenstellen of googelen)

Page 20: Les 6 - onderwerpen

Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren

20Computertechniek

Solderen

• De power connector solderen• Mink (hiernaast) assisteert• Pak de soldeerbout aan het juiste einde vast • Overschakelen op de stekkervoeding: