Labor gyakorlat Mikrovezérlők

Hasonló dokumentumok
Labor gyakorlat Mikrovezérlők

Labor gyakorlat Mikrovezérlők

Mintavételes szabályozás mikrovezérlő segítségével

Labor 2 Mikrovezérlők

Nagy Gergely április 4.

I. C8051Fxxx mikrovezérlők hardverfelépítése, működése. II. C8051Fxxx mikrovezérlők programozása. III. Digitális perifériák

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

Számítógépek felépítése, alapfogalmak

Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás

Szoftvertechnológia alapjai Java előadások

Autóipari beágyazott rendszerek CAN hardver

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

Informatika érettségi vizsga

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

A Texas Instruments MSP430 mikrovezérlőcsalád

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

Számítógép felépítése

Kinek szól a könyv? A könyv témája A könyv felépítése Mire van szükség a könyv használatához? A könyvben használt jelölések. 1. Mi a programozás?

Programozási nyelvek I. 5. előadás (Gregorics Tibor anyagának felhasználásával)

Java II. I A Java programozási nyelv alapelemei

A C# programozási nyelv alapjai

Az interrupt Benesóczky Zoltán 2004

C programozás. 1 óra Bevezetés

VI. SZOFTVERES PROGRAMOZÁSÚ VLSI ÁRAMKÖRÖK

Programozás 1. Dr. Iványi Péter

1. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok

ARM Cortex magú mikrovezérlők

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés

MSP430 programozás Energia környezetben. Kitekintés, további lehetőségek

TARTALOMJEGYZÉK. 1. Ismétlés A mikroprocesszor mőködése Mikroszámítógépek, mikrokontrollerek... 20

Az AVR programozás alapjai. Előadja: Both Tamás

B I T M A N B I v: T M A N

A programozás alapjai

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Előfeldolgozó rendszer Tömbök. Dr. Bécsi Tamás 4. Előadás

Programzás I gyakorlat

Járműfedélzeti rendszerek I. 2. előadás Dr. Bécsi Tamás

Számítógépek felépítése, alapfogalmak

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

C programozás. 6 óra Függvények, függvényszerű makrók, globális és

1.1. A forrásprogramok felépítése Nevek és kulcsszavak Alapvető típusok. C programozás 3

Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás

Számítógépek felépítése

Informatika terméktervezőknek

Laboratóriumi műszerek megvalósítása ARM alapú mikrovezérlővel és Linux-szal

Programozás I gyakorlat. 10. Stringek, mutatók

ATMEL ATMEGA MIKROVEZÉRLŐ-CSALÁD

Programozás BMEKOKAA146. Dr. Bécsi Tamás 3. előadás

Szoftvertervezés és -fejlesztés I.

A C# PROGRAMOZÁSI NYELV

ARM Cortex magú mikrovezérlők

OOP I. Egyszerő algoritmusok és leírásuk. Készítette: Dr. Kotsis Domokos

Bevezető előadás Mikrórendszerek összahasonlítása.dsp bevezető

A TANTÁRGY ADATLAPJA

2. Elméleti összefoglaló

Információs Technológia

Érzékelők és beavatkozók I.

Kifejezések. Kozsik Tamás. December 11, 2016

Digitális rendszerek. Utasításarchitektúra szintje

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét

TARTALOMJEGYZÉK. 1. BEVEZETÉS A logikai hálózatok csoportosítása Logikai rendszerek... 6

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 2. előadás

Mérési útmutató. A/D konverteres mérés. // Első lépésként tanulmányozzuk a digitális jelfeldolgozás előnyeit és határait.

Stack Vezérlés szerkezet Adat 2.

3. Gyakorlat Ismerkedés a Java nyelvvel

Programozás C nyelven (3. ELŐADÁS) Sapientia EMTE

Programozás I gyakorlat

Arduino bevezető Szenzorhálózatok és alkalmazásaik

Mutatók és mutató-aritmetika C-ben március 19.

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

Processzor (CPU - Central Processing Unit)

Matematikai alapok. Dr. Iványi Péter

Járműfedélzeti rendszerek II. 2. előadás Dr. Bécsi Tamás

Programozás II. 2. Dr. Iványi Péter

C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem }

Bevezető a mikrokontrollerek, az IoT és

Programozási nyelvek JAVA EA+GY 1. gyakolat

Programozás BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás

Java II. I A Java programozási nyelv alapelemei

Új kompakt X20 vezérlő integrált I/O pontokkal

Algoritmusok Tervezése. 4. Előadás Visual Basic 1. Dr. Bécsi Tamás

Bevezetés az informatikába Tételsor és minta zárthelyi dolgozat 2014/2015 I. félév

Mintavételezés tanulmányozása. AD - konverzió. Soros kommunikáció

A LEGO Mindstorms EV3 programozása

C# gyorstalpaló. Készítette: Major Péter

Nagyteljesítményű mikrovezérlők

1. Egyszerű (primitív) típusok. 2. Referencia típusok

Pénzügyi algoritmusok

Programozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK. Sapientia EMTE

Adatok ábrázolása, adattípusok

Adattípusok, vezérlési szerkezetek. Informatika Szabó Adrienn szeptember 14.

Webprogramozás szakkör

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós szeptember 27. Széchenyi István Egyetem, Gy r

Mikrorendszerek tervezése

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem }

Programozás alapjai. 5. előadás

Programozás I. gyakorlat

Feladat: Hogyan tudunk létrehozni egy olyan vector nevű tömb típust, amely egy háromdimenziós térbeli vektort reprezentál?

Átírás:

Labor gyakorlat Mikrovezérlők ATMEL AVR ARDUINO 1. ELŐADÁS BUDAI TAMÁS

Tartalom Labor 2 mikrovezérlők modul 2 alkalom 1 mikrovezérlők felépítése, elmélet 2 programozás, mintaprogramok Értékelés: a 2. alkalom elején minizh az 1. alkalommal elhangzottakból. Forma: 5+1 rövid választ igénylő kérdés 2

Tartalom Mikrovezérlők Mikrovezérlők felépítése, működése Mikrovezérlő típusok, gyártók Mikrovezérlők perifériái Mikrovezérlők programozása A C programozási nyelv (ismétlés) ATMEL AVR mikrovezérlők programozása Az ATMEL studio használata Feladatmegoldás 3

Mikrovezérlők Mikrovezérlő: Kisméretű, alacsony fogyasztású, programvezérelt digitális hálózat, avagy számítógép 4

Mikrovezérlők Alkalmazási területek: Háztartási és szórakoztató elektronika Ipari elektronika Járműipar Gyógyászati eszközök SMART eszközök IoT 5

Tartalom Mikrovezérlők Mikrovezérlők felépítése, működése Mikrovezérlő típusok, gyártók Mikrovezérlők perifériái Mikrovezérlők programozása A C programozási nyelv (ismétlés) ATMEL AVR mikrovezérlők programozása Az ATMEL studio használata Feladatmegoldás 6

Mikrovezérlők felépítése, működése Mikroprocesszor Mikrovezérlő Memória ALU CU ALU CU Megszakítás kezelő Órajel-generátor Perifériák A mikrovezérlő egy teljes számítógép egy tokban 7

Mikrovezérlők felépítése, működése Számítógép, tehát érvényesek rá a Neumann alapelvek: Elektronikus Bináris számrendszer Adat és programmemória Univerzális Turing-gép Mikrovezérlő Memória ALU CU Megszakítás kezelő Órajel-generátor Perifériák 8

Mikrovezérlők felépítése, működése Mikrovezérlő CPU (ALU+CU): Egyes családoknál* közös Meghatározza a számábrázolást*: 8,16,32bit Memória ALU CU Megszakítás kezelő Órajel-generátor Perifériák 9

Mikrovezérlők felépítése, működése Memória típusok: Program memória nem újraírható újraírható Adatmemória RAM ROM Mikrovezérlő Memória ALU CU Megszakítás kezelő Órajel-generátor Perifériák 10

Mikrovezérlők felépítése, működése Megszakítás kezelő: A normál futást megszakítva rákényszeríti a rendszert, hogy azonnal hajtson végre egy speciális programrészt Megszakítás forrásai Belső: időzítő, periféria Külső: adott lábon felfutó él Mikrovezérlő Memória ALU CU Megszakítás kezelő Órajel-generátor Perifériák 11

Mikrovezérlők felépítése, működése 12

Mikrovezérlők felépítése, működése Működés Egy általános célú mikrovezérlő a reset esemény után a következő lépéseket hajtja végre: 1. Minden periféria alaphelyzetbe állítása 2. A program lépéseinek végrehajtása a programmemória elejétől (reset vector) az órajel szerint 13

Mikrovezérlők felépítése, működése Reset A reset esemény: a mikrovezérlő (újra)indítása A reset esemény forrásai: Power-on reset (bekapcsolás) External reset (külső reset láb szintváltozása miatt) Watchdog system reset (őrkutya* miatt) *Ezért a fordításért külön elnézést kérek 14

Mikrovezérlők felépítése, működése Program (Gépi kód) A gép által értelmezhető binárisan kódolt utasítások sorozata Forráskód Majd a programozásnál 15

Mikrovezérlők felépítése, működése Órajel Mivel a mikrovezérlő egy digitális hálózat ezért a működéséhez szükség van órajelre. Jelalak: négyszögjel mértékegysége: 1/s vagyis Hertz Tipikus nagyságrendje napjainkban: 1MHz-100MHz Forrás Pontosság Költség RC oszcillátor Alacsony Legolcsóbb Kerámia rezonátor Közepes Olcsó Rezgőkristály Magas Drága 16

Mikrovezérlők felépítése, működése Órajel ciklus, ciklusidő Ciklusidő: Az órajel két egymást követő le/felfutó éle közt eltelt idő (vagyis a négyszögjel periódusideje) Utasítások jellemzése: hány órajelciklus szükséges a végrehajtáshoz Pl.: Feltétel nélküli ugrás 1 ciklus Összeadás 2 ciklus (Minél kevesebb, annál gyorsabb) 17

Tartalom Mikrovezérlők Mikrovezérlők felépítése, működése Mikrovezérlő típusok, gyártók Mikrovezérlők perifériái Mikrovezérlők programozása A C programozási nyelv (ismétlés) ATMEL AVR mikrovezérlők programozása Az ATMEL studio használata Feladatmegoldás 18

Mikrovezérlő típusok, gyártók Mikrovezérlők Bitek száma Memória / perifériák helye Utasításkészlet 4 8 16 32 Külső Belső RISC CISC 19

Mikrovezérlő típusok, gyártók Gyártók Atmel Infineon Intel Microchip Motorola National Instruments Parallax Texas instruments Xilinx 20

Tartalom Mikrovezérlők Mikrovezérlők felépítése, működése Mikrovezérlő típusok, gyártók Mikrovezérlők perifériái Mikrovezérlők programozása A C programozási nyelv (ismétlés) ATMEL AVR mikrovezérlők programozása Az ATMEL studio használata Feladatmegoldás 21

Mikrovezérlők perifériái Tipikus perifériák Digitális be/kimenetek A/D konverter D/A konverter Speciális perifériák BUS illesztők*: SPI UART (RS232) I 2 C CAN érintés-érzékelő PWM kimenet Mikrovezérlő Memória ALU CU Megszakítás kezelő Órajel-generátor Perifériák *Nem feltétlenül szükséges minden buszhoz (bitbang) 22

Mikrovezérlők perifériái Digitális bemenet: Egy bemenet egy láb Egy bit reprezentálja a logikai szintet: 0 = alacsony 1 = magas Digitális kimenet: Egy kimenet egy láb Ugyan az, mint a bemenet, csak itt a bitet írjuk és nem olvassuk 23

Mikrovezérlők perifériái A/D átalakító: Bemenet Működés: Mintavételezés Kvantálás Jellemzői: Felbontás (hány bites) sebesség Az analóg jel amplitúdója a föld és egy referenciapotenciál közt értelmezett (ez általában a tápfeszültség) és egy változóból kiolvasható 24

Mikrovezérlők perifériái D/A átalakító: Kimenet Jellemzői: Felbontás (hány bites) sebesség Az analóg jel amplitúdója a föld és egy referenciapotenciál közt értelmezett (ez általában a tápfeszültség) Logikája azonos az A/D-vel, csak itt beírjuk a kívánt szintet és nem kiolvassuk 25

Mikrovezérlők perifériái BUSZ illesztők: Be/kimenet Annyi lábat használ, amennyit az adott BUSZ megkíván: Pl.: CLK, RX, TX Működését az adott BUSZ típusa határozza meg Tartozhat hozzá speciális memóriarész (pl. fogadó buffer) 26

Tartalom Mikrovezérlők Mikrovezérlők felépítése, működése Mikrovezérlő típusok, gyártók Mikrovezérlők perifériái Mikrovezérlők programozása A C programozási nyelv (ismétlés) ATMEL AVR mikrovezérlők programozása Az ATMEL studio használata Feladatmegoldás 27

Mikrovezérlők programozása Program (Gépi kód) A gép által értelmezhető binárisan kódolt utasítások sorozata Forráskód Az egyszerűbb kezelhetőség érdekében adjunk rövid nevet az egyes utasításoknak Ember által értelmezhető, gép által nem; Ahhoz, hogy futtatható legyen fordításra van szükség! 28

Mikrovezérlők programozása Forráskód Fordító Egy mikrovezérlő bármilyen nyelven programozható, ha van az adott nyelvhez és vezérlőhöz fordítóprogram. Gépi kód 1010010 1110101 0101010 29

Mikrovezérlők programozása Programnyelvek Alacsony szintű Assembly Magas szintű C, C++, Python, Java 30

Tartalom Mikrovezérlők Mikrovezérlők felépítése, működése Mikrovezérlő típusok, gyártók Mikrovezérlők perifériái Mikrovezérlők programozása A C programozási nyelv (ismétlés) ATMEL AVR mikrovezérlők programozása Az ATMEL studio használata Feladatmegoldás 31

A C programozási nyelv (ismétlés) tartalom Alapok Változók, adattípusok Operátorok Elágazások, Feltételes utasítások Ciklusok Függvények 32

A C programozási nyelv (ismétlés) Alapok A forráskód: Egyszerű szövegfájl Ember által értelmezhető Utasítások sorozata Kötött formátum 33

A C programozási nyelv (ismétlés) Alapok Példa 34

A C programozási nyelv (ismétlés) Alapok #include direktíva: más forráskódrészeket tudunk beágyazni ezek erősen függenek a használt környezettől main() függvény: minden programban pontosan egy darabnak kell lennie itt kezdődik a programunk végrehajtása 35

A C programozási nyelv (ismétlés) Változók, adattípusok A legkisebb egység: 1 bit 8 bit = 1 byte B B B B B B B B B Változótípusok void bool char int unsigned int float double string semmi (ezt is jelölni kell valahogy) logikai (igaz/hamis) egy karakter (1 byte) (előjeles) egész szám egész szám lebegőpontos szám dupla pontosságú float char-okból álló tömb 36

A C programozási nyelv (ismétlés) Változók, adattípusok Példa 37

A C programozási nyelv (ismétlés) Változók, adattípusok Tömbök: Egy adott adattípusból álló több elemű halmaz A memóriában folytonosan helyezkedik el A tömb méretét előre meg kell mondanunk* 38

A C programozási nyelv (ismétlés) Változók, adattípusok Tömbök: Egy adott adattípusból álló több elemű halmaz A memóriában folytonosan helyezkedik el A tömb méretét előre meg kell mondanunk* 39

A C programozási nyelv (ismétlés) Operátorok Operátorok: Aritmetikai: + - * / % ( ) Összehasonlító: ==!= < <= > >= Logikai: &&! Bitenkénti: & ^ ~ << >> Helyben módosító: ++ -- += -= *= /= &= = Egyéb: sizeof 40

A C programozási nyelv (ismétlés) Operátorok Példa 41

A C programozási nyelv (ismétlés) Elágazások, feltételes utasítások Elágazások: if, if-else switch case 42

A C programozási nyelv (ismétlés) Elágazások, feltételes utasítások If-else 43

A C programozási nyelv (ismétlés) Elágazások, feltételes utasítások Switch-case 44

A C programozási nyelv (ismétlés) Ciklusok Ciklusok: for while do-while Ciklusvezérlés 45

A C programozási nyelv (ismétlés) Ciklusok for Tömörebben: 46

A C programozási nyelv (ismétlés) Elágazások, feltételes utasítások while 47

A C programozási nyelv (ismétlés) Elágazások, feltételes utasítások do-while 48

A C programozási nyelv (ismétlés) Ciklusok Vezérlő utasítások: break continue return 49

A C programozási nyelv (ismétlés) Ciklusok break 50

A C programozási nyelv (ismétlés) Ciklusok break 51

A C programozási nyelv (ismétlés) Ciklusok continue 52

A C programozási nyelv (ismétlés) Ciklusok return 53

A C programozási nyelv (ismétlés) Függvények Függvények mint a matematikában: paraméter, visszatérési érték programszervezésre használhatók Példa: y = sin(x) 54

A C programozási nyelv (ismétlés) Függvények Példa 55

A C programozási nyelv (ismétlés) Összefoglalás Összefoglalás: = + - * / % ( ) ==!= < <= > >= ++ -- += -= *= /= &= = sizeof bool int float [] {} ; #include 56

A C programozási nyelv (ismétlés) Összefoglalás Mit hagytunk ki: előfordító direktívák, makrók mutatók, mutató aritmetika dinamikus memóriakezelés saját adattípusok, struktúrák függvénykönyvtárak hibakeresés 57

A C programozási nyelv (ismétlés) Összefoglalás Ajánlott irodalom: http://www.tutorialspoint.com/cprogramming/index.htm B. W. Kernighan - D. M. Ritchie : A C programozási nyelv Takács Gábor: Programozás villamosmérnököknek 58