Home
Add Document
Sign In
Register
Ústav radioelektroniky. Mikroprocesorová technika a embedded systémy. doc. Ing. Tomáš Frýza, Ph.D
Home
Ústav radioelektroniky. Mikroprocesorová technika a embedded systémy. doc. Ing. Tomáš Frýza, Ph.D
1 Ústav radioelektroniky Vysoké učení technické v Brně Zobrazovací zařízení, zpracování...
Author:
Marta Lišková
7 downloads
95 Views
5MB Size
Report
DOWNLOAD PDF
Recommend Documents
Ústav radioelektroniky. Mikroprocesorová technika a embedded systémy. doc. Ing. Tomáš Frýza, Ph.D
Ústav radioelektroniky. Mikroprocesorová technika a embedded systémy. doc. Ing. Tomáš Frýza, Ph.D
Mikroprocesorová technika a embedded systémy. doc. Ing. Tomáš Frýza, Ph.D
Mikroprocesorová technika a embedded systémy. doc. Ing. Tomáš Frýza, Ph.D
Kriminalistická technika I. Doc. Ing. Roman Rak, PhD
Komunikace za 0 0 zen po sb rnici Mikroprocesorov technika a embedded syst my
doc. Ing. Jana Přikrylová, PhD
doc. Ing. Jozef Klučka, PhD
Mikroprocesorová technika a embedded systémy
Cena v kupní smlouvě. doc. Ing. Jana Přikrylová, PhD (c) doc. Ing. Jana Přikrylová, PhD
Introduction. doc. Ing. Zuzana Palková, PhD
Ing. Zdeněk Novák. Disertační práce. doc. Ing. David Tuček, PhD
KPP. doc. Ing. Martin Hynek, PhD. a kolektiv. verze - 1.0
prof. Ing. Ľubomír Šooš, PhD., dekan fakulty doc. Ing. Marian Králik, PhD., prodekan prof. Ing. Ernest Gondár, PhD., prodekan doc. Ing
1 3Mikroprocesorov technika a embedded syst my
Doc. MVDr. Ivan Herzig, CSc. Ing. Bohumila Písaříková, Prof. MVDr. Ing. Pavel Suchý, CSc. Doc. Ing. Eva Straková, PhD
Druhotná krajinná struktura, krajinný obraz - doc. Ing. Peter Jančura, PhD
prednášky: doc. Ing. K. Ujházy, PhD., prof. Ing. R. Kropil, CSc., Ing. D. Kurjak, PhD. cvičenia 2 hodinové Ing. F. Máliš, PhD
Základy rádiové digitální komunikace. Doc. Dr. Ing. Pavel Kovář Katedra radioelektroniky K13137
Doc. Ing. Jiří Skalický, CSc. ELEKTRICKÉ POHONY A VÝKONOVÁ ELEKTRONIKA: SOUČASNÝ STAV, PERSPEKTIVY A VÝUKA
Číselné soustavy v mikroprocesorové technice Mikroprocesorová technika a embedded systémy
Vysokofrekvenční ohřev tkání. Biofyzika Doc. Ing. Jana Kolářová, PhD. Ing. Vratislav Harabiš, (PhD.) Ústav biomedicínského inženýrství, VUT v Brně
Bioklimatológia. 1.Meteorológia 2.Klimatológia 3.Bioklimatológia. Vyučujúci doc. Ing. Katarína Střelcová, PhD. Ing. Matúš Hríbik, PhD
7 u města Louny Ing. P. Beneš, PhD., Doc. Ing. J. Majtaník, CSc
´ Ustav radioelektroniky Vysok´ e uˇ cen´ı technick´ e v Brnˇ e
Zobrazovac´ı zaˇr´ızen´ı, zpracov´ an´ı analogov´ ych sign´ al˚ u Mikroprocesorov´ a technika a embedded syst´ emy Pˇredn´ aˇska 6
doc. Ing. Tom´ aˇs Fr´ yza, Ph.D. 25. ˇr´ıjna 2011
Obsah pˇredn´ aˇsky
Ovl´ ad´ an´ı zobrazovac´ıch zaˇr´ızen´ı 7segmentov´ y displej Znakov´ e LCD displeje Grafick´ e displeje
Zpracov´ an´ı analogov´ ych sign´ al˚ u Pˇripomenut´ı Intern´ı A/D pˇrevodn´ık AVR Analogov´ y kompar´ ator u AVR
Zp˚ usoby programov´ an´ı mikrokontrol´ er˚ u
Uk´ azka programu v jazyce C pro ATmega16 A/D pˇrevodn´ık
Obsah pˇredn´ aˇsky
Ovl´ ad´ an´ı zobrazovac´ıch zaˇr´ızen´ı 7segmentov´ y displej Znakov´ e LCD displeje Grafick´ e displeje
Zpracov´ an´ı analogov´ ych sign´ al˚ u Pˇripomenut´ı Intern´ı A/D pˇrevodn´ık AVR Analogov´ y kompar´ ator u AVR
Zp˚ usoby programov´ an´ı mikrokontrol´ er˚ u
Uk´ azka programu v jazyce C pro ATmega16 A/D pˇrevodn´ık
Ovl´ ad´ an´ı zobrazovac´ıch zaˇr´ızen´ı – pˇr´ım´ e propojen´ı s MCU
I
Pˇr´ım´ e propojen´ı: napˇr. LED, 7segmentov´ y displej.
PC7
PC2
PA3
PA3
PA4 A1
PA2
PA4 A1
PA2
PA7
PA5
PA7
PA5
A6
PA0
A6
PA0
Obr´ azek: Zapojen´ı 7segmentov´ eho displeje v laboratoˇri Mikroprocesorov´ e techniky; 6 symbol˚ u.
Pozn.: Pˇr´ıklad pouˇ zit´ı 7segmentov´ eho displeje
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
#i n c l u d e
#i n c l u d e
// h l a v i ˇ ckov´ y soubor pro m i k r o k o n t r o l´ er // h l a v i ˇ ckov´ y s o u b o r p r o pˇr e r u ˇs e n´ı
// p r o t o t y p f u n k c e z o b r a z u j´ı c´ı j e d e n s y m b o l na p oˇz a d o v a n´ e pozici i n t showSeg ( c har , c h a r ) ; i n t main ( v o i d ) { ... sei ( ) ; while ( 1 ) ; return ( 1 ) ;
// // // //
h l a v n´ı f u n k c e k´ o d h l a v n´ı f u n k c e glob´ a l n´ı p o v o l e n´ı vˇs e c h pˇr e r u ˇs e n´ı n e k o n eˇ cn´ a smyˇ c ka
// h l a v n´ı f u n k c e v r a c´ı h o d n o t u 1
} ISR (
. . . ){ // o b s l u h a pˇr e r u ˇs e n´ı p ˇr i pˇr e t e ˇ c e n´ı ˇ casovaˇ ce ... // k´ o d o b s l u h y pˇr e r u ˇs e n´ı // z o b r a z e n´ı j e d n o h o s y m b o l u ” s y m b o l ” na p o z i c i ” p o s i t i o n ” showSeg ( symbol , position ) ;
} i n t showSeg ( c h a r symbol , c h a r position ) { s w i t c h ( symbol ) { case 0: // z o b r a z s y m b o l ”0” ... // d o p l n ˇ t e k´ od c e l ´ e funkce } return ( 0 ) ; // n ´ avratov´ a hodnota funkce }
Znakov´ e LCD displeje I
ˇ ızen´ı komunikace s displejem (znakov´ R´ y, grafick´ y).
I
Zobraziteln´ a plocha obsahuje bˇ eˇznˇ e od 8×1 do 40×4 znak˚ u, bez nebo s podsv´ıcen´ım (nejˇ castˇ eji ˇzluto-zelen´ e) – proudov´ y odbˇ er.
I
Vˇ etˇsina LCD displej˚ u obsahuje ˇr´ıdic´ı obvod HD44780 firmy Hitachi (pˇr´ıp. jeho deriv´ at); prostˇrednictv´ım tohoto obvodu je moˇzn´ e komunikovat s displejem. Tento ”ˇradiˇ c”obsahuje jak znakovou sadu i instrukce pro ovl´ ad´ an´ı. Komunikace prob´ıh´ a pomoc´ı 8 datov´ ych sign´ al˚ u (DB0 − DB7) a je ˇr´ızena 3 ˇr´ıdic´ımi sign´ aly (RS, R/W a E ):
I
I I I
RS – identifikuje, zda se pˇren´ aˇs´ı instrukce nebo zobraziteln´ a data, cten´ı nebo z´ apisu (z pohledu MCU), R/W – volba operace ˇ E – spouˇstˇ ec´ı (”vzorkovac´ı”) sign´ al.
(a)
(b)
Obr´ azek: R˚ uzn´ e proveden´ı znakov´ ych LCD displej˚ u.
(c)
Datov´ a komunikace mezi LCD a MCU I
Existuj´ı dva z´ akladn´ı zp˚ usoby datov´ e komunikace mezi LCD a MCU, vyuˇz´ıvaj´ıc´ı pln´ y (8bitov´ a komunikace) nebo redukovan´ y (4bitov´ a komunikace) poˇ cet datov´ ych sign´ al˚ u.
I
8bitov´ a komunikace vyˇzaduje 8 + 3 I/O pin˚ u mikrokontrol´ er˚ u. 4bitov´ a komunikace: 4 + 3 I/O pin˚ u:
I
I I
u LCD se vyuˇz´ıv´ a horn´ı polovina datov´ ych pin˚ u DB7 aˇz DB4, rozdˇ elen´ı datov´ eho slova do dvou nibl˚ uvˇ casov´ em multiplexu, tj. dva pulzy ˇr´ıdic´ıho sign´ alu E .
Tabulka: Popis pin˚ u LCD displeje MC1604 (16×4 znak˚ u).
Obr´ azek: Zapojen´ı LCD displeje na v´ yvojov´ e desce ATmega16.
ˇ pinu C.
Symbol
1 2 3 4 5 6 7-14 15 16
V− V+ V0 RS R/W E DB0–DB7 A C
Popis Nap´ ajec´ı napˇ et´ı (GND). Nap´ ajec´ı napˇ et´ı (+). Kontrast znak˚ u. V´ ybˇ er instrukce/data. V´ ybˇ er ˇ cten´ı/z´ apis. Sign´ al Enable. Datov´ e piny. Podsv´ıcen´ı – anoda. Podsv´ıcen´ı – katoda.
ˇ ızen´ı komunikace mezi LCD a MCU R´ I
V´ yznam hodnot ˇr´ıdic´ıch sign´ al˚ u: I I I I
RS = 0: pˇren´ aˇs´ı se instrukce (napˇr. pro smaz´ an´ı obsahu displeje), RS = 1: data (napˇr. text k zobrazen´ı). R/W = 0: z´ apis dat/instrukc´ı do LCD, R/W = 1: ˇ cten´ı z LCD. sestupn´ a hrana kladn´ eho pulzu sign´ alu E startuje komunikaci. Data na sbˇ ernici mus´ı b´ yt ust´ alena jiˇz pˇred n´ astupnou hranou. Minim´ aln´ı doba trv´ an´ı impulzu? Moˇznost u ´spory dalˇs´ıho pinu – R/W = GND.
Pˇr´ıklad Nakreslete ˇ casov´ e pr˚ ubˇ ehy vˇsech sign´ al˚ u pˇri z´ apisu instrukce 0b1111 0000 do LCD pomoc´ı (a) 8bitov´ e a (b) 4bitov´ e komunikace. I
Znaky jsou zobrazov´ any jako matice 5×8 (vˇ etˇsina znak˚ u je menˇs´ıch); jsou v LCD uloˇzeny ve vnitˇrn´ı pamˇ eti RAM.
I
Znaky adresovan´ e 16–31 (0x10–0x1F) a 128–159 (0x80–0x9F) nelze zobrazit (odpov´ıdaj´ı ˇr´ıdic´ım znak˚ um z ASCII tabulky).
I
Data, kter´ a chceme zobrazit, jsou v LCD uloˇzena v pamˇ eti s oznaˇ cen´ım DDRAM (Display Data RAM).
I
Je moˇzn´ e definovat aˇz 8 uˇzivatelsk´ ych znak˚ u (adresa 0–7). Tento segment je oznaˇ cov´ an jako CGRAM (Character Generator RAM).
Instrukˇ cn´ı sada ˇr´ıdic´ıho obvodu HD44780
Tabulka: Vybran´ e pˇr´ıkazy HD44780 pro komunikaci s LCD displejem. RS
R/W
DB7 : DB0
Popis instrukce
0 0 0
0 0 0
0000 0001 0000 001x 0000 01IS
0
0
0000 1DCB
0
0
001L NFxx
0 0 1
0 0 0
01 cgram 1 ddram data
1 1
0 1
data data
1
1
data
Smaz´ an´ı displeje. N´ avrat kurzoru na pozici (0,0). Nastaven´ı posuvu kurzoru. I: inkrementace pozice kurzoru. S: posuv displeje. Zapnut´ı displeje/kurzoru. D: zapnut´ı displeje. C: zobrazen´ı kurzoru. B: blik´ an´ı kurzoru. Nastaven´ı rozliˇsen´ı. L=1(0): nastaven´ı 8(4)bitov´ e komunikace. N=1(0): dva(jeden) ˇr´ adky displeje. F=1(0): velikost fontu 5×10(5×7). Nastaven´ı adresy cgram v CGRAM segmentu. Nastaven´ı adresy v DDRAM segmentu. Z´ apis dat do pamˇ eti CGRAM. Zobrazen´ı znaku z adresy data. Z´ apis dat do pamˇ eti CGRAM nebo DDRAM. ˇ ı dat z pamˇ Cten´ eti CGRAM. ˇ Cten´ı dat z adresy data. ˇ ı dat z pamˇ Cten´ eti CGRAM nebo DDRAM.
RS = 0 instrukce RS = 1 data
Inicializace LCD displeje
1 2 3 4 5 6 7 8 9
I
Inicializace komunikace s displejem (z´ akladn´ı nastaven´ı ˇradiˇ ce HD44780).
I
Prov´ est jednou – zaˇ c´ atek aplikace.
I
Pozor na ˇ casov´ an´ı – jednotliv´ e pˇr´ıkazy vyˇzaduj´ı minim´ aln´ı ˇ casov´ e prodlevy. Zpoˇzdˇ en´ı v knihovnˇ e realizov´ ano t´ eˇz prostˇrednictv´ım funkce lcd clrscr().
v o i d lcd_init ( v o i d ) { DDRA = 0 xFE ; _delay_ms ( 16 ) ; lcd_command ( 0 b00100000 lcd_command ( 0 b00101000 lcd_command ( 0 b00000100 lcd_command ( 0 b00001100 }
) ) ) )
; ; ; ;
// // // // // //
v i z p ˇr i p o j e n´ı LCD v l a b o r a t o ˇr i delay 4 bitov´ a komunikace ; v i z vybran´ e pˇr´ık a z y v´ı c e ˇr´ a d k˚ u displeje n a s t a v e n´ı p o s u v u k u r z o r u z a p n u t´ı d i s p l e j e
Znakov´ a sada LCD displeje 0· ·0 ·1 ·2 ·3 ·4 ·5 ·6 ·7
2·
3·
4·
5·
6·
7·
A· B· C· D· E· F·
Znakov´ a sada LCD displeje I
I
Znaky se definuj´ı v matici 5×8 bod˚ u. Zobrazen´ y pixel bude v t´ eto matici obsahovat hodnotu ”1”, body kter´ e maj´ı b´ yt skryty, obsahuj´ı ”0”. Jeden znak je tedy reprezentov´ an osmic´ı slov (jedno slovo na ˇr´ adek). Nov´ y znak m´ a smysl uloˇzit do pamˇ eti CGRAM na sam´ em zaˇ c´ atku aplikace. 0b01110 0b11111 0b11111 0b11111 0b11111 0b11111 0b11111 0b11111 (a) 100 %
0b01110 0b11111 0b10001 0b10001 0b10001 0b11111 0b11111 0b11111 (b) 40 %
0b01110 0b11111 0b10001 0b10001 0b10001 0b10001 0b10001 0b11111 (c) 0 %
Obr´ azek: Novˇ e definovan´ e znaky pro LCD displej – indik´ ator nabit´ı baterie.
1 2 3 4 5 6 7 8 9 10 11 12 13
lcd_init ( ) ; lcd_clrscr ( ) ;
// i n i c i a l i z a c e LCD d i s p l e j e − v i z k n i h o v n a // s m a z ´ a n´ı o b s a h u LCD
lcd_command ( 0 b01000000 ) ; lcd_data ( 0 b01110 ) ; lcd_data ( 0 b11111 ) ; lcd_data ( 0 b11111 ) ; lcd_data ( 0 b11111 ) ; lcd_data ( 0 b11111 ) ; lcd_data ( 0 b11111 ) ; lcd_data ( 0 b11111 ) ; lcd_data ( 0 b11111 ) ; lcd_clrscr ( ) ;
// pˇr´ık a z : N a s t a v e n´ı a d r e s y 0 v CGRAM // u l o ˇz p r v n´ı ˇr ´ a d e k s y m b o l u od a d r e s y 0
// u l o ˇz p o s l e d n´ı ˇr ´ a d e k no v´ eho symbolu // s m a z ´ a n´ı o b s a h u LCD ( n u t n´ e)
Knihovna v jazyce C pro pr´ aci s LCD I
Peter Fleury: http://homepage.hispeed.ch/peterfleury/ (Pozn.: Datov´ e piny MUS´I b´ yt namapov´ any na doln´ı polovinˇ e portu.)
Tabulka: Soupis vybran´ ych funkc´ı z knihovny pro LCD.
N´ azev funkce
Popis funkce
lcd lcd lcd lcd lcd lcd lcd
Inicializace LCD displeje. Smaz´ an´ı obsahu LCD displeje. Pˇresun kurzoru na pozici (0,2), tj. 1. sloupec, 3. ˇr´ adek. Zobrazen´ı znaku ”A”. Zobrazen´ı ˇretˇ ezce znak˚ u ”BMPT”. Z´ apis 1bytov´ e instrukce do LCD displeje. Z´ apis 1bytov´ ych dat do LCD displeje.
init() ; clrscr() ; gotoxy( 0,2 ) ; putc( ’A’ ) ; puts( "BMPT") ; command( 0x40 ) ; data( 0x0A ) ;
I
LCD pro Arduino: http://www.arduino.cc/en/Tutorial/LCDLibrary.
I
http://extremeelectronics.co.in/avr-tutorials/ using-lcd-module-with-avrs/
I
...
Pozn.: Zobrazen´ı promˇ enn´ e typu float na LCD I I
Nutn´ e pˇridat knihovny libprintf flt a libm do pˇrekladu aplikace. Spr´ avn´ e nastaven´ı linkov´ an´ı: -Wl,-u,vfprintf.
(a)
(b)
Obr´ azek: Pˇrid´ an´ı knihoven do pˇrekladu v prostˇred´ı AVR Studio. 1 2 3 4 5 6 7 8 9 10 11 12
#i n c l u d e <s t d i o . h> // s t a n d a r d n´ı I /O k n i h o v n a ( n u t n´ e pro s p r i n t f ) #i n c l u d e ” l c d h . h” // k n i h o v n a p r o LCD ... float temp ; // g l o b ´ a l n´ı promˇ e nn´ a typu f l o a t char buffer [ 1 6 ] ; // g l o b . promˇ e nn´ a ˇr e t ˇ e z c e k z o b r a z e n´ı na d i s p l e j i ... // n a p l n ˇ e n´ı ˇr e t ˇ e z c e b u f f e r pˇr´ıs l uˇs n ´ y m textem sprintf ( buffer , ” Hodnota = %5.2 f ” , temp ) ; // z o b r a z e n´ı ˇr e t ˇ e z c e na d i s p l e j i lcd_puts ( buffer ) ; ...
Pozn.: Grafick´ e displeje I
Odliˇsn´ e ˇr´ıdic´ı obvody: I
I
Napˇr. DOGM132X-5 od spoleˇ cnosti ELECTRONIC ASSEMBY – monochromatick´ y grafick´ y displej s rozliˇsen´ım 132×32 pixel˚ u (ˇradiˇ c ST7565R).
Grafick´ y displej ATM12864 s rozliˇsen´ım 128×64 pixel˚ u (ˇradiˇ c KS0108): I
Absence znakov´ e sady. Rozdˇ elen´ı obrazu na dvˇ eˇ c´ asti (64×64) – kaˇzd´ a vlastn´ı ˇradiˇ c. Sign´ aly paralelnˇ e, kromˇ e CS1 a CS2 – lev´ a, prav´ aˇ c´ ast displeje.
(a)
(b)
Obr´ azek: Grafick´ y displej ATM12864.
Pro komunikaci s řadičem T6963 byl použit mikroprocesor PIC16F690, který má datovou paměť o velikosti 4kB. Další vlastnosti tohoto mikrokontroléru jsou popsány v literatuře [3]. Pro použitý typ displeje je vhodnější větší paměť, protože jeden obrázek přes celý displej zabere 3,84 kB u displejů s rozlišením 240x128. Na obrázku obr. 3 je uvedeno zjednodušené schéma zapojení. Program byl napsán v jazyce C s využitím dema vývojového prostředí Mikroelektronika – MikroC (odkaz ke stáhnutí dema naleznete zde: [4]). Program je přidán na CD k tomuto dokumentu. Pokud nemáte k dispozici displej s řadičem T6963, a přesto byste si chtěli vyzkoušet jakým způsobem se s ním komunikuje, je možné použít program Multisim od firmy NI. Demo (odkaz ke stáhnutí dema naleznete zde:) obsahuje ukázku zapojení a vzorový program přímo s tímto řadičem.
Pozn.: Dotykov´ y panel (touch screen)
2 Displej s dotykovým panelem I Dˇ elen´ı podle druhu z´ısk´ an´ı informace o poloze 2.1 Úvod I Dotykové panely se dnes používají k ovládání stále častěji a uživateli mnohdy zjednoduší a zpříjemní řízení různých programů. DP můžeme rozdělit podle druhu získávané informace na analogové a digitální. U analogových DP je k určení místa dotyku třeba použít AD převodník. Je možné zakoupit I speciální obvody určeny přímo pro DP, např: ADS 7864E od firmy TI. U digitálních DP se místo dotyku určí maticovým způsobem obdobně jako u klávesnic, tedy skenováním řádků a sloupců.
Analogov´ e: je nutn´ e pouˇz´ıt A/D pˇrevodn´ık, pˇr´ıp. speci´ aln´ı obvod. Napˇr. ADS7864E (12-Bit, 6-Channel Simultaneous Sampling ADC), fy TI, Digit´ aln´ı: skenov´ an´ı ˇr´ adk˚ u a sloupc˚ u – identick´ e s maticovou kl´ avesnic´ı, Uk´ azka: Grafick´ y displej PG240128WRF-ATA-H-Y7 (ˇradiˇ c T6963c) s 10×5 dotykov´ ymi poli @ 15 odporového I/O pin˚ u (digit´ ı informace). jsem vyzkoušel ovládání digitálního DP,aln´ který je výrobcem COL5 COL4 COL3 COL2 COL1 ROW1 ROW2 ROW3 ROW4 ROW5 COL6 COL7 COL8 COL9 COL10 NC
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
U4
VDD
1 2 3 4 5 6 7 8 9
10
VDD
VSS
RA5 RA4 RA3
RA0 RA1 RA2
RC5 RC4 RC3 RC6 RC7
RC0 RC1 RC2
RB7
RB4 RB5 RB6
20
GND
GND VDD
19 18 17
16 15 14
13 12 11
PIC16F690
GND GND
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
VSS VDD V0 C/D RD WR D0 D1 D2 D3 D4 D5 D6 D7 CE RESET VEE MD2 FS1 NC
Prakticky T 6963C instalován na displej firmy Powertrip: PG240128WRF-ATA-H-Y7 (viz. obr. 1). Jedná se o Obr. 3:ovládá Schéma zapojení mikrokontroléru PIC16F690 ke grafickému displeji PG240128WRF. černobílý grafický displej v provedení FSTN s bílým podsvícením (CCFL), displej inteligentní řadič T6963. Rozlišení displeje je 240 x 128 bodů a rozlišení DP je 10 xNa5obrázku bodů.obr. 4 je zobrazen displej, na kterém je testován DP. Aktivní je na DP TOUCH
10k
VDD
pouze poslední řádek a umožňuje stisknout „tlačítka“ T1 až T8 (T9 a T10 není aktivní). Při stisku daného tlačítka se slovy zobrazí číslo tlačítka, které bylo stisknuto. „Tlačítko 8“ (T8) má navíc funkci vypínání grafické části, to znamená, že při stisku T8, zmizí nápis UREL a po stisku, kteréhokoli jiného tlačítka se opět tento nápis zobrazí.
Obr. 1: Grafický displej PG240128WRF-ATA-H-Y7.
Obr. 4: Displej PG240128WRF při testování dotykového panelu.
(a)
(b)
6
(c)
Obr´ azek: Aplikace s grafick´ ym displejem: (a, b) PG240128WRF-ATA-H-Y7, (c) 3,2”(http: //www.ebay.com/itm/3-2-TFT-LCD-Module-Display-Touch-Panel-PCB-adapter-/ 200475566068?pt=LH_DefaultDomain_0&hash=item2ead465ff4). I
Uk´ azky aplikac´ı s grafick´ ymi displeji napˇr.: I I I I
Samostatn´ e projekty http://www.urel.feec.vutbr.cz/~fryza/ DP, Kulig DP, Marcoˇ n Str´ anky pˇredmˇ etu Mikropoˇ c´ıtaˇ ce pro pˇr´ıstrojov´ e aplikace, dr. Fedra http://www.urel.feec.vutbr.cz/MIA/ 3
Obsah pˇredn´ aˇsky
Ovl´ ad´ an´ı zobrazovac´ıch zaˇr´ızen´ı 7segmentov´ y displej Znakov´ e LCD displeje Grafick´ e displeje
Zpracov´ an´ı analogov´ ych sign´ al˚ u Pˇripomenut´ı Intern´ı A/D pˇrevodn´ık AVR Analogov´ y kompar´ ator u AVR
Zp˚ usoby programov´ an´ı mikrokontrol´ er˚ u
Uk´ azka programu v jazyce C pro ATmega16 A/D pˇrevodn´ık
Pˇripomenut´ı A/D pˇrevodu
I
Pˇrevzato z materi´ al˚ u semin´ aˇre DSP Primer firmy Xilinx, 22. kvˇ etna 2011, Praha.
A/D pˇrevod s pomoc´ı AVR
I
MCU umoˇzn ˇuje zpracov´ avat vstupn´ı analogov´ e sign´ aly pomoc´ı A/D pˇrevodn´ıku (Analog to Digital Converter) a kompar´ atoru (Analog Comparator).
I
ATmega16: 8kan´ alov´ y, 10bitov´ y pˇrevodn´ık – piny PA0 aˇz PA7. Hodnota ve formˇ e ˇıseln´ dvojkov´ eho doplˇ nku (viz pˇredn´ aˇska C´ e reprezentace v MPT ). Vstupn´ı u ´roveˇ n je br´ ana bud’ v˚ uˇ ci GND, pˇr´ıpadnˇ e lze pˇrev´ adˇ et diferenˇ cn´ı hodnotu dvou vstupn´ıch kan´ al˚ u a to vˇ cetnˇ e nastaviteln´ eho zes´ılen´ı.
I
I I
Minim´ aln´ı hodnota: 0 V. Maxim´ aln´ı hodnota: napˇ et´ı referenˇ cn´ıho napˇ et´ı VREF . A/D pˇrevodn´ık m˚ uˇze pracovat z nˇ ekolika reˇzimech: I I
I
I
jednoduch´ y pˇrevod (Single Conversion). Pˇrevede se hodnota jedin´ eho vzorku, pot´ e je pˇrevod zastaven, automatick´ e spouˇstˇ en´ı (Auto Triggering). Speci´ aln´ı ud´ alost (napˇr. extern´ı pˇreruˇsen´ı, zmˇ ena hodnoty kompar´ atoru, pˇreteˇ cen´ı ˇ casovaˇ ce, komparace ˇ casovaˇ ce/ˇ c´ıtaˇ ce, . . .) m˚ uˇze zah´ ajit A/D pˇrevod. Pˇrevod je zah´ ajen n´ abˇ eˇznou hranou vybran´ eho sign´ alu; pokud pˇrijde nov´ a n´ abˇ eˇzn´ a hrana a pˇrevod nen´ı dokonˇ cen, pak je ignorov´ ana. (Umoˇzn ˇuje zah´ ajen´ı pˇrevodu v konstantn´ıch intervalech.), tzv. voln´ y bˇ eh (Free Running). Pˇrevod je prov´ adˇ en neust´ ale – jeden je ukonˇ cen, druh´ y spuˇstˇ en.
Po dokonˇ cen´ı A/D pˇrevodu je v´ ysledek zaps´ an do datov´ ych registr˚ u A/D pˇrevodn´ıku, tj. do ADCH:L; moˇznost generovat pˇreruˇsen´ı – viz vektory pˇreruˇsen´ı.
Figure 98. Analog to Digital Converter Block Schematic
Blokov´ e sch´ ema A/D pˇrevodn´ıku
ADC CONVERSION COMPLETE IRQ
INTERRUPT FLAGS ADTS[2:0]
0
TRIGGER SELECT
ADC[9:0]
ADC DATA REGISTER (ADCH/ADCL) ADPS0
ADIF
ADPS2
ADPS1
ADEN
ADSC
ADATE
MUX1
MUX3
15
ADC CTRL. & STATUS REGISTER (ADCSRA) MUX0
MUX2
MUX4
ADLAR
REFS1
REFS0
ADC MULTIPLEXER SELECT (ADMUX)
ADIE
ADIF
8-BIT DATA BUS
AVCC
PRESCALER START
GAIN SELECTION
CHANNEL SELECTION
MUX DECODER
CONVERSION LOGIC
INTERNAL 2.56V REFERENCE
SAMPLE & HOLD COMPARATOR
AREF
10-BIT DAC
+
GND
BANDGAP REFERENCE ADC7
SINGLE ENDED / DIFFERENTIAL SELECTION ADC6 ADC5
ADC MULTIPLEXER OUTPUT
POS. INPUT MUX
ADC4 ADC3 +
ADC2
ADC1 ADC0
NEG. INPUT MUX
GAIN AMPLIFIER
ˇ Casov´ an´ı A/D pˇrevodn´ıku ATmega16
I
intern´ı A/D pˇrevodn´ık potˇrebuje pro 10bitov´ y pˇrevod hodinov´ y sign´ al o frekvenci od 50 kHz do 200 kHz: I I
ˇr´ıdic´ı frekvence m˚ uˇze b´ yt vˇ etˇs´ı, pokud je postaˇ cuj´ıc´ı niˇzˇs´ı rozliˇsen´ı neˇz 10bitov´ e, A/D pˇrevodn´ık obsahuje pˇreddˇ eliˇ cku (2, 4, 8, 16, 32, 64, 128) ke generov´ an´ı vhodn´ e frekvence, odvozen´ e od frekvence hodinov´ eho sign´ alu j´ adra MCU (fCPU ).
I
Doba dokonˇ cen´ı A/D pˇrevodu z´ avis´ı na zvolen´ em reˇzimu, pˇriˇ cemˇz pˇrevod prvn´ı hodnoty trv´ a d´ ele neˇz vˇsechny n´ asleduj´ıc´ı – inicializace vnitˇrn´ıch obvod˚ u jednotky.
I
Celkov´ a doba pˇrevodu se skl´ ad´ a z doby navzorkov´ an´ı a samotn´ eho pˇrevodu.
sion completes, while ADSC remains high. For a summary of conversion times, see Table 81.
Doba trv´ an´ı A/D pˇrevodu
Figure 101. ADC Timing Diagram, First Conversion (Single Conversion Mode) Next Conversion
First Conversion
Cycle Number
1
2
12
13
14
15
16
17
18
19
20
21
22
23
24
25
1
2
3
ADC Clock ADEN ADSC ADIF MSB of Result
ADCH
LSB of Result
ADCL MUX and REFS Update
Sample & Hold
Conversion Complete
MUX and REFS Update
Obr´ azek: Doba pˇrevodu prvn´ıho vzorku.
I
Navzorkov´ an´ı prvn´ıho vzorku vstupn´ıho sign´ alu (sample & hold) trv´ a 13,5 A/D cykl˚ u.
I
Dokonˇ cen´ı prvn´ıho pˇrevodu vˇ cetnˇ e inicializace analogov´ ych obvod˚ u trv´ a 25 hodinov´ ych cykl˚ u A/D pˇrevodn´ıku (frekvence 50–200 kHz).
209
Doba trv´ an´ı A/D pˇrevodu Figure 102. ADC Timing Diagram, Single Conversion One Conversion
Cycle Number
2
1
3
4
5
6
7
8
Next Conversion 10
9
11
12
13
1
2
3
ADC Clock ADSC ADIF ADCH
MSB of Result
ADCL
LSB of Result Sample & Hold MUX and REFS Update
Conversion Complete
MUX and REFS Update
Figure 103. ADC Diagram, Autodruh´ Triggered Obr´ aTiming zek: Doba pˇrevodu eho a Conversion n´ asleduj´ıc´ıch vzork˚ u. One Conversion
Cycle Number
1
2
3
4
5
6
7
8
9
Next Conversion 10
11
12
I
Navzorkov´ an´ı ostatn´ıch vzork˚ u trv´ a jen 1,5 cykl˚ u. ADC Clock
I
Triggercen´ Dokonˇ ı pˇrevodu ostatn´ıch vzork˚ u trv´ a jen 13 cykl˚ u. Source Maxim´ a ln´ ı vzorkovac´ ı frekvence jednoho kan´ a lu je tak: ADATE
I
I
13
1
2
3,8 kSPS pˇri min. frekvenci fADCmin = 50 kHz a 15,3 kSPS pˇri max. fADCmax = 200 kHz.
ADIF
I
ADCH
MSB of Result
ADCL
LSB of Result Sample & Hold
Conversion
Prescaler
Vyj´ adˇren´ı v´ ysledku A/D pˇrevodu
I
nbitov´ y jednoduch´ y A/D pˇrevod konvertuje vstupn´ı napˇ et´ı line´ alnˇ e mezi GND a VREF v 2n kroc´ıch (tj. hladiny 0 aˇz 2n −1).
I
Tzv. jednoduch´ y pˇrevod: ADCH:L = I I
I
VIN · (2n − 1) VREF
(1)
VIN : pˇrev´ adˇ en´ a hodnota napˇ et´ı na zvolen´ em vstupn´ım pinu, VREF : zvolen´ e referenˇ cn´ı napˇ et´ı.
Diferenˇ cn´ı pˇrevod: ADCH:L = I I I I
VPOS − VNEG · (2n−1 − 1) · GAIN VREF
VPOS : napˇ et´ı na neinvertuj´ıc´ım vstupn´ım pinu, VNEG : napˇ et´ı na invertuj´ıc´ım vstupn´ım pinu (viz blokov´ e sch´ ema A/D pˇrevodn´ıku), GAIN: zvolen´ e zes´ılen´ı, V´ ysledek ve dvojkov´ em doplˇ nku (10 bit˚ u, tj. od −512 do +511).
(2)
V´ ybˇ er sign´ al˚ u pro A/D pˇrevod – viz blokov´ e sch´ ema ADC I I
Lze vybrat r˚ uzn´ e vstupn´ı a referenˇ cn´ı sign´ aly pro pˇrevod. Volby referenˇ cn´ıho napˇ et´ı: I I I
I
Volby vstupn´ıch kan´ al˚ u: I I
I
extern´ı napˇ et´ı na pinu AREF, u ´roveˇ n nap´ ajec´ıho napˇ et´ı, vnitˇrn´ı zdroj reference 2,56 V. individu´ aln´ı vstupy na pinech PA7:0 (ADC7:0), nˇ ekter´ e pˇredvolen´ e kombinace dvou vstupn´ıch kan´ al˚ u se zes´ılen´ım 1×, 10×, 100× nebo 200× (viz katalogov´ y list ATmega16).
Jednotliv´ e kan´ aly nelze pˇrev´ adˇ et paralelnˇ e – vˇzdy je potˇreba vybrat jedin´ y vstupn´ı sign´ al (prostˇrednictv´ım ˇr´ıdic´ıch registr˚ u). Po dokonˇ cen´ı jednoho pˇrevodu (vyuˇzit´ı pˇreruˇsen´ı): zmˇ enit vstupn´ı kan´ al a zah´ ajit pˇrevod na n´ asleduj´ıc´ım kan´ ale; viz Uk´ azka programu pro AVR na konci prezentace. 7
6
5
4
3
2
1
0
REFS1 REFS0ADLARMUX4 MUX3 MUX2 MUX1 MUX0
ADMUX
Obr´ azek: Struktura kontroln´ıho registru ADMUX (ADC Multiplexer Selection Register).
7
6
5
4
3
2
1
0
ADEN ADSCADATE ADIF ADIE ADPS2ADPS1ADPS0 ADCSRA Obr´ azek: Struktura kontroln´ıho registru ADCSRA (ADC Control and Status Register A).
Pˇr´ıklad uˇ zit´ı A/D pˇrevodu
Pˇr´ıklad Jakou hodnotu obsahuje registrov´ y p´ ar ADCH:L, je-li nastaven diferenˇ cn´ı pˇrevod vstup˚ u ADC 3 = 300 mV a ADC 2 = 500 mV, zes´ılen´ı GAIN = 10× a vnitˇrn´ı zdroj referenˇ cn´ıho napˇ et´ı VREF = 2,56 V? ˇ sen´ı Reˇ ADCH:L = ADCH:L =
VPOS −VNEG · (2n−1 VREF 0,3−0,5 · (511) · 10 2,56
− 1) · GAIN ≈ −399 = 0x271 (viz dvojkov´ y doplnˇ ek)
Analogov´ y kompar´ ator u AVR
I Analogov´ y kompar´ ator porovn´ av´ a neinvertovan´ y vstup AIN0 s invertovan´ ym AIN1 log Comparator The Analog Comparator (u ATmega16 piny PB2, compares PB3). the input values on the positive pin AIN0 and nega-
tive pin AIN1. When the voltage on the positive pin AIN0 is higher than the voltage on
I
Pokud je ´negative roveˇ n pin napˇ et´ı AIN0 > Comparator AIN1, v´ ystup atoru (Analog the u AIN1, the Analog Output,kompar´ ACO, is set. The ACO=1 comparator’s output can be set to (Synchronizace trigger the Timer/Counter1 Input Capture function. the trv´ Comparator Output). v´ ystupu kompar´ atoruInaaddition, ACO bitu a comparator can trigger a separate interrupt, exclusive to the Analog Comparator. The 1–2 cykly.) user can select Interrupt triggering on comparator output rise, fall or toggle. A block dia-
I
gram of the comparator and its surrounding logic is shown in Figure 97. M˚ uˇze b´ yt generov´ ano pˇreruˇsen´ı pˇri pˇreklopen´ı kompar´ atoru z 1→0, 0→1, nebo pˇri libovoln´ e 97. zmˇ enˇ e. Comparator Block Diagram(2) Figure Analog BANDGAP REFERENCE ACBG
ACME ADEN ADC MULTIPLEXER OUTPUT (1)
Notes:
1. See Table 80 on page 204. 2. Refer to Figure 1 on page 2 and Table 25 on page 58 for Analog Comparator pin placement.
Porovn´ avan´ e sign´ aly
I
I
Analogov´ y kompar´ ator umoˇzn ˇuje kromˇ e porovn´ av´ an´ı dvou vstupn´ıch sign´ al˚ u z pin˚ u PB2 (AIN0) a PB3 (AIN1), pˇripojen´ı jeˇstˇ e jin´ ych sign´ al˚ u (hodnot). Neinvertovan´ y vstup: I I
I
extern´ı sign´ al z pinu PB2 nebo, vnitˇrn´ı zdroj napˇ et’ov´ eu ´rovnˇ e o velikosti 1,23 V.
Invertovan´ y vstup: I I
extern´ı sign´ al z pinu PB3 nebo, libovoln´ y vstupn´ı kan´ al A/D pˇrevodn´ıku, tj. sign´ aly z pin˚ u PA7:0 (ADC7:0). (Konkr´ etn´ı vstup nastavuje multiplexer A/D pˇrevodn´ıku.)
Pˇr´ıklad Navrhnˇ ete obvodov´ e zapojen´ı aplikace, kontroluj´ıc´ı napˇ et´ı na nap´ ajec´ı baterii. Pokles necht’ je signalizov´ an blikaj´ıc´ı LED diodou. Nakreslete v´ yvojov´ y diagram t´ eto aplikace.
Pˇr´ıklad uˇ zit´ı analogov´ eho kompar´ atoru
I
Monitorov´ an´ı stavu nap´ ajec´ı baterie pomoc´ı kompar´ atoru.
I
Jestliˇze AIN1>AIN0, v´ ystup kompar´ atoru = 0, LED1 blik´ a. Nastaven´ı odporov´ ych dˇ eliˇ c˚ u:
I
I
I
I
Obsluha pˇreruˇsen´ı ANA COMP vect: I I I
Obr´ azek: Aplikace, kontroluj´ıc´ı napˇ et´ı na nap´ ajec´ı baterii.
R3 AIN1 = R3+R1 · 5V , 38 · 5V = 2, 2V , AIN1 = 38+47 R4 AIN0 = R4+R2 · VBAT , 15 AIN0 = 15+26 · VBAT , ⇒ min. napˇ et´ı baterie VBATmin = 6V .
vypnut´ı kompar´ atoru, zah´ ajen´ı blik´ an´ı LED1 pomoc´ı ˇ c/ˇ c 0, ...
Obsah pˇredn´ aˇsky
Ovl´ ad´ an´ı zobrazovac´ıch zaˇr´ızen´ı 7segmentov´ y displej Znakov´ e LCD displeje Grafick´ e displeje
Zpracov´ an´ı analogov´ ych sign´ al˚ u Pˇripomenut´ı Intern´ı A/D pˇrevodn´ık AVR Analogov´ y kompar´ ator u AVR
Zp˚ usoby programov´ an´ı mikrokontrol´ er˚ u
Uk´ azka programu v jazyce C pro ATmega16 A/D pˇrevodn´ık
Zp˚ usoby programov´ an´ı mikrokontrol´ er˚ u
I
I
Programov´ an´ı, nebo tzv. download mikrokontrol´ er˚ u znamen´ a nakop´ırov´ an´ı vytvoˇren´ e aplikace (nejˇ castˇ eji ve form´ atu Intel HEX) do programov´ e pamˇ eti (Flash) mikrokontrol´ eru. (Program´ atory umoˇzn ˇuj´ı tak´ e naˇ cten´ı, verifikaci a smaz´ an´ı pamˇ eti.) Z´ akladn´ı zp˚ usoby downloadu: I I I
I
paraleln´ı programov´ an´ı, rozhran´ı JTAG (umoˇzn ˇuje tak´ e ladˇ en´ı aplikace v c´ılov´ em MCU), s´ eriov´ e programov´ an´ı (ISP In-System Programming) pomoc´ı SPI rozhran´ı (viz S´ eriov´ a komunikace).
Paraleln´ı programov´ an´ı: I I
nutn´ y vˇ etˇs´ı poˇ cet vodiˇ c˚ u. Zpravidla pomoc´ı extern´ıho program´ atoru – vyjmut´ı mikrokontrol´ eru ze syst´ emu, coˇz je komplikovan´ e, krkolomn´ e, nˇ ekdy nemoˇzn´ e, rychlost downloadu je velk´ a.
S´ eriov´ e programov´ an´ı v syst´ emu I
S´ eriov´ e programov´ an´ı v syst´ emu (ISP: In-System Programming): I I I I I
I
Obr´ azek: Pˇripojen´ı s´ eriov´ eho programov´ an´ı.
obsahuj´ı vˇsechny mikrokontrol´ ery, nen´ı nutn´ e vyj´ımat mikrokontrol´ er ze syst´ emu, neposkytuje moˇznost ladˇ en´ı aplikace, vyuˇz´ıv´ a se komunikace po s´ eriov´ em rozhran´ı SPI (Serial Peripheral Interface); viz pˇredn´ aˇska S´ eriov´ e komunikace v MPT, SPI je duplexn´ı, synchronn´ı pˇrenos pomoc´ı ˇ ctyˇr vodiˇ c˚ u: SCK (hod. sign´ al), MOSI (Master Out Slave In), MISO (Master In Slave Out), SS (Slave Select). Lze programovat programovou a EEPROM pamˇ et’. Hodnota na pinu RESET je pˇripojena na GND (na rozd´ıl od paraleln´ıho programov´ an´ı).
Pozn.: V laboratoˇri: AVRISP mkII od Atmel.
Obr´ azek: ISP program´ ator BiProg pro Atmel, Ing. Povalaˇ c, http://www.urel.feec.vutbr.cz/ fryza/?Download.
Obsah pˇredn´ aˇsky
Ovl´ ad´ an´ı zobrazovac´ıch zaˇr´ızen´ı 7segmentov´ y displej Znakov´ e LCD displeje Grafick´ e displeje
Zpracov´ an´ı analogov´ ych sign´ al˚ u Pˇripomenut´ı Intern´ı A/D pˇrevodn´ık AVR Analogov´ y kompar´ ator u AVR
Zp˚ usoby programov´ an´ı mikrokontrol´ er˚ u
Uk´ azka programu v jazyce C pro ATmega16 A/D pˇrevodn´ık
Vyuˇ zit´ı A/D pˇrevodn´ıku
I
I
Aplikace vyuˇz´ıv´ a 3 kan´ aly intern´ıho A/D pˇrevodn´ıku mikrokontrol´ eru ATmega16. Mezi kan´ aly se pˇrep´ın´ avˇ casov´ em multiplexu – vyuˇz´ıv´ a se glob´ aln´ı promˇ enn´ a chnl. ˇ ıdic´ı registry: R´ I I
I
I
ADMUX (ADC Multiplexer Selection Register) – vybr´ an´ı jednoho kan´ alu, pˇr´ıp. referenˇ cn´ıho napˇ et´ı, ADCSRA (ADC Control and Status Register) – zapnut´ı A/D pˇrevodn´ıku, zah´ ajen´ı pˇrevodu, povolen´ı pˇreruˇsen´ı po dokonˇ cen´ı pˇrevodu, nastaven´ı pˇreddˇ eliˇ cky hodinov´ eho sign´ alu pro A/D pˇrevodn´ık.
Direktivy pre-procesoru #define definuj´ı ˇretˇ ezce (LEDs, red, . . .), kter´ e budou pˇred pˇrekladem nahrazeny konkr´ etn´ım pˇr´ıkazem, hodnotou (POTRB, 0b11011111, . . .). Obsluha pˇreruˇsen´ı po dokonˇ cen´ı pˇrevodu ISR( ADC vect ): I
I I
promˇ enn´ a ADCW obsahuje 10bitovou hodnotu pˇrevodu (tj. obsah obou datov´ ych registr˚ u ADCH:L); POZOR, promˇ ennou kterou pln´ıme ADCW deklarovat uvnitˇr obsluhy pˇreruˇsen´ı, nebo jako volatile!! testov´ an´ım hodnoty promˇ enn´ e channel se prov´ ad´ı podm´ınˇ en´ a obsluha tˇr´ı kan´ al˚ u; souˇ casnˇ e se nastavuje n´ asleduj´ıc´ı kan´ al – registr ADMUX, znovuzah´ ajen´ı pˇrevodu – registr ADCSRA, bit ADSC.
Pˇrep´ın´ an´ı mezi kan´ aly A/D pˇrevodn´ıku ISR: ADC
zpracov´ an´ı aktu´ aln´ıho vzorku
naˇcten´ı vzorku ADCW zpracov´ an´ı
kan´ al==7
+ kan´ al = 6
red LED
kan´ al = 5
yellow LED
kan´ al = 7
green LED
− pˇrep´ın´ an´ı mezi trojic´ı kan´ al˚ u
kan´ al==6
+
− kan´ al==5
+
− start nov´eho A/D pˇrevodu
zah´ ajen´ı nov´eho A/D pˇrevodu konec pˇreruˇsen´ı
Obr´ azek: Obsluha pˇreruˇsen´ı po dokonˇ cen´ı A/D pˇrevodu. Pˇrep´ın´ an´ı mezi 3 kan´ aly intern´ıho A/D pˇrevodn´ıku s LED signalizac´ı.
A/D pˇrevodn´ık v jazyce C 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
#i n c l u d e
#i n c l u d e
// h l a v i ˇ ckov´ y soubor pro m i k r o k o n t r o l´ er // h l a v i ˇ ckov´ y s o u b o r p r o pˇr e r u ˇs e n´ı
#d e f i n e #d e f i n e #d e f i n e #d e f i n e
// // // //
LEDs red yellow green
PORTB 0 b11011111 0 b10111111 0 b01111111
c h a r channel = 7 ;
d i r e k t i v y p r e−p r o c e s o r u ˇ cerven´ a LED d i o d a j e pˇr i p o j e n ´ a na p i n u PB5 ˇz l u t ´ a LED d i o d a j e pˇr i p o j e n ´ a na p i n u PB6 zelen´ a LED d i o d a j e pˇr i p o j e n ´ a na p i n u PB7
// pomocn´ y identifik´ a t o r A/D k a n ´ alu
i n t main ( v o i d ) { DDRB = 0 b11100000 ;
// d e k l a r a c e v ´ y s t u p n´ıc h p i n˚ u pro barevn´ e LED
// v ´ ybˇ er kan´ a l u na p i n u PA7 ADMUX |= (1<<MUX2 ) | (1<<MUX1 ) | (1<<MUX0 ) ; // z a p n u t´ı A/D pˇr e v o d n´ık u , z a h ´ a j e n´ı pˇre v o d u , p o v o l e n´ı pˇr e r u ˇs e n´ı // pˇr e d d ˇ eliˇ c k a = 128 ADCSRA |= (1<
// g l o b ´ a l n´ı p o v o l e n´ı vˇs e c h pˇr e r u ˇs e n´ı // n e k o n eˇ cn´ a smyˇ c ka
return ( 1 ) ; // h l a v n´ı f u n k c e v r a c´ı h o d n o t u 1 } // p o k r a ˇ cov´ a n´ı na d a l ˇs´ı s t r a n ˇ e
A/D pˇrevodn´ık v jazyce C – dokonˇ cen´ı 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
// p o k r a ˇ cov´ a n´ı z pˇr e d e ˇs l ´ e strany ISR ( ADC_vect ) { // o b s l u h a pˇr e r u ˇs e n´ı A/D pˇr e v o d n´ık u u n s i g n e d i n t adcData ; adcData = ADCW ; ...
// n a ˇ c t e n´ı 10 b i t o v ´ e h o d n o t y A/D pˇr e v o d u // k´ o d o b s l u h y pˇr e r u ˇs e n´ı ; z p r a c o v ´ a n´ı v z o r k u
// r e ˇz i e pˇr e p´ı n ´ a n´ı m e z i 3 k a n ´ aly ; v i z u ´ a l n´ı s i g n a l i z a c e pomoc´ı LED d i o d i f ( channel == 7 ) { // v ´ ybˇ er kan´ a l u na p i n u PA6 ADMUX |= (1<<MUX2 ) | (1<<MUX1 ) | (0<<MUX0 ) ; LEDs = red ; // s i g n a l i z a ˇ c n´ı l e d channel = 6 ; } e l s e i f ( channel == 6 ) { // v ´ ybˇ er kan´ a l u na p i n u PA5 ADMUX |= (1<<MUX2 ) | (0<<MUX1 ) | (1<<MUX0 ) ; LEDs = yellow ; // s i g n a l i z a ˇ c n´ı l e d channel = 5 ; } e l s e i f ( channel == 5 ) { // v ´ ybˇ er kan´ a l u na p i n u PA7 ADMUX |= (1<<MUX2 ) | (1<<MUX1 ) | (1<<MUX0 ) ; LEDs = green ; // s i g n a l i z a ˇ c n´ı l e d channel = 7 ; } // z a p n u t´ı A/D pˇr e v o d n´ık u , z a h ´ a j e n´ı n ov´ e ho pˇr e v o d u ADCSRA |= (1<
×
Report "Ústav radioelektroniky. Mikroprocesorová technika a embedded systémy. doc. Ing. Tomáš Frýza, Ph.D"
Your name
Email
Reason
-Select Reason-
Pornographic
Defamatory
Illegal/Unlawful
Spam
Other Terms Of Service Violation
File a copyright complaint
Description
×
Sign In
Email
Password
Remember me
Forgot password?
Sign In
Our partners will collect data and use cookies for ad personalization and measurement.
Learn how we and our ad partner Google, collect and use data
.
Agree & close