PIC mikrovezrlk Tbb mint 800 klnbz tpus 8 bites magok Baseline Midrange Enhanced-midrange High-end Baseline
33 utasts 1mips/4mhz (max 20MHz) 12 bites utastsszlessg , 8 bites adatbusz 16-128 byte ram 256 word - 3kWord flash 2 mly hw-es stack (nem elrhet sw-oldalrl) Kis lbszm (6-8-(40))
Nincs megszakts Kevs perifria Harvard-architektra Midrange (nem a kiterjesztett)
35 utasts 1mips/4mhz (max 20Mhz) 14 bites utastsszlessg 8 mly hw-stack (nem elrhet sw-esen) Max 384byte ram ~1-7kword flash 64-256 byte eeprom Sok, vltozatos perifria Megszaktsok 8-40 lb Nmelyik kpes a sajt programmemrijt rni Perifrik
I/O portok Idztk/szmllk USART, SPI, I2C, I2S, PMP CCP, PWM, Input Capture, Output Compare ADC, DAC, kompartor Lcd vezrl (magt az lcd szegmenseit) EEPROM USB, Ethernet Kapacitv gombok
(RF, CRC, DMA, RTC) Hogyan vlasszunk PIC-et? Microchip Advanced Part Selector (MAPS) Online verzi: gyorsabb, mindig "friss, nehezebb benne komplexebb filtereket sszelltani Offline: lass (nagyon), szl ha elavult az adatbzisa, knnyebb komplex keress (nemcsak mikrovezrlket tudunk benne keresni) demo Fejlesztkrnyezet MPLAB, MPLABX (java alap),
PIKLAB(linux alatt) Programozk: ICD2,3 PICKIT2,3 ami neknk fontos Mirt assembly? Ki tudjuk hasznlni a processzor teljes erejt Nem nehz (vs avr) MPLAB ban beptett asm fordt, minden ic hez defincik Mirt C? Gyorsabb kdols, rengeteg ksz programrszlet Htrnyok: Nemigazn optimalizl itt ott a fordt
Vagy ismerni kell a fordtt (errl ksbb) 10-16F Hitech C, CSS 18F CSS, C18 MPLAB demo Ismerkeds Baseline tpusokkal A 10F222 kontrollert fogjuk hasznlni 512 word flash (0,75kB)
23 byte ram 6 lb tokozs 3 IO, 1 input only 8 bites AD konverter, bels 0,6V stabil referencival 8 MHz bels rc oszcilltor (bizonyos keretek kztt llthat) -> 2 mips -> 500nS / utasts 8 bites idzt/szmll modul 25mA sink/source / portlb Programozhat kapu Adatlap a biblia! Nagyon jl dokumentlnak mindent Csak az adott kontroller adatlapjbl simn programozhat minden perifria, de ha nem lenne elg van a csaldhoz egy
adatlap, illetve egyes perifrikhoz is kln 15-50 oldalas ERRATA! rtkek sszehasonltsa ram - konstans *** Ugrik ha igaz *** RAM > X RAM < X RAM >= X RAM <= X movf RAM,w
sublw X btfss status,c goto true movlw X subwf RAM,w btfss status,c goto true movlw X subwf RAM,w btfsc status,c goto true movf RAM,w sublw X
btfsc status,c goto true *** Ugrik ha nem igaz *** RAM > X RAM < X RAM >= X RAM <= X movf RAM,w sublw X btfsc status,c goto false
movlw X subwf RAM,w btfsc status,c goto false movlw X subwf RAM,w btfss status,c goto false movf RAM,w sublw X btfss status,c goto false
rtkek sszehasonltsa ram - ram *** Ugrik, ha igaz *** RAM0 > RAM1 RAM0 < RAM1 RAM0 >= RAM1 RAM0<= RAM1 movf RAM0,w subwf RAM1,w btfss status,c goto true movf RAM1,w subwf RAM0,w
btfss status,c goto true movf RAM1,w subwf RAM0,w btfsc status,c goto true movf RAM0,w subwf RAM1,w btfsc status,c goto true *** Ugrik, ha hamis *** RAM0 > RAM1
RAM0 < RAM1 RAM0 >= RAM1 RAM0<= RAM1 movf RAM0,w subwf RAM1,w btfsc status,c goto false movf RAM1,w subwf RAM0,w btfsc status,c goto false movf RAM1,w subwf RAM0,w
btfss status,c goto false movf RAM0,w subwf RAM1,w btfss status,c goto false