Les 6 - onderwerpen
description
Transcript of 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
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren
2Computertechniek
Pas op : foutje in de sheets van vorige week
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
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
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?
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
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
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.
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)
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
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
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
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
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
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.
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren
16Computertechniek
De IR ontvanger (3)
Aanbevolen: puls >= 400uS, periode =< 0.4
Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology ; PIC assember programeren
17Computertechniek
De IR ontvanger (4)
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
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)
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: