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

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

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

Szoftvertechnológia alapjai Java előadások

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

Az interrupt Benesóczky Zoltán 2004

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

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?

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

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

Digitális technika VIMIAA01 9. hét

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

ATMEL ATMEGA MIKROVEZÉRLŐ-CSALÁD

Autóipari beágyazott rendszerek CAN hardver

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

A Texas Instruments MSP430 mikrovezérlőcsalád

Informatika érettségi vizsga

Java II. I A Java programozási nyelv alapelemei

Programozási segédlet DS89C450 Fejlesztőpanelhez

C programozás. 1 óra Bevezetés

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

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

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

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

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

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

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

A programozás alapjai

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

Adatok ábrázolása, adattípusok

Programozási nyelvek JAVA EA+GY 1. gyakolat

Programozás és Digitális technika I. Pógár István eng.unideb.hu/pogari

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

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés

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

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

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

Bevezetés a mikrovezérlők programozásába: I/O portok kezelése, számrendszerek, bitműveletek

A tervfeladat sorszáma: 1 A tervfeladat címe: ALU egység 8 regiszterrel és 8 utasítással

Bevezető a mikrokontrollerek, az IoT és

Informatika terméktervezőknek

Programozás alapjai 9.Gy: Struktúra 2.

Szoftvertervezés és -fejlesztés I.

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

Az MSP430 mikrovezérlők digitális I/O programozása

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

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

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

ARM Cortex magú mikrovezérlők

Stack Vezérlés szerkezet Adat 2.

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

T Bird 2. AVR fejlesztőpanel. Használati utasítás. Gyártja: BioDigit Kft. Forgalmazza: HEStore.hu webáruház. BioDigit Kft, Minden jog fenntartva

LabVIEW példák és bemutatók KÉSZÍTETTE: DR. FÜVESI VIKTOR

A LEGO Mindstorms EV3 programozása

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

A LOGSYS GUI. Fehér Béla Raikovich Tamás, Laczkó Péter BME MIT FPGA laboratórium

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

SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1

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.

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

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

Ismerkedés a Python programnyelvvel. és annak micropython változatával

PWM elve, mikroszervó motor vezérlése MiniRISC processzoron

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

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

2. Elméleti összefoglaló

T Bird 2. AVR fejlesztőpanel. Használati utasítás. Gyártja: BioDigit Kft. Forgalmazza: HEStore.hu webáruház. BioDigit Kft, Minden jog fenntartva

Java II. I A Java programozási nyelv alapelemei

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

Programozási nyelvek 6. előadás

A C# PROGRAMOZÁSI NYELV

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

Készítette: Oláh István mestertanár

ARM Cortex magú mikrovezérlők

Programozás I. gyakorlat

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

Python bevezető foglalkozás Python bevezető foglalkozás

Pénzügyi algoritmusok

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

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

1. Alapok. Programozás II

Ismerkedés az MSP430 mikrovezérlőkkel

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

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

Fizikai mérések Arduino-val

A C# programozási nyelv alapjai

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós március 3. Széchenyi István Egyetem, Gy r

Matematikai alapok. Dr. Iványi Péter

Mikrorendszerek tervezése

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

Occam 1. Készítette: Szabó Éva

Átírás:

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

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 Feladatmegoldás 2

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

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 4

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 Feladatmegoldás 5

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 6

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 7

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 8

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 9

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 10

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

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 12

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 13

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 14

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 15

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) 16

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 Feladatmegoldás 17

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 18

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

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 Feladatmegoldás 20

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) 21

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 22

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ó 23

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 24

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) 25

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 Feladatmegoldás 26

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! 27

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 28

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

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 Feladatmegoldás 30

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 31

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 32

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

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 34

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 35

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

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* 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) Operátorok Operátorok: Aritmetikai: + - * / % ( ) Összehasonlító: ==!= < <= > >= Logikai: &&! Bitenkénti: & ^ ~ << >> Helyben módosító: ++ -- += -= *= /= &= = Egyéb: sizeof 39

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

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

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

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

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

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

A C programozási nyelv (ismétlés) Ciklusok while 46

A C programozási nyelv (ismétlés) Ciklusok do-while 47

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

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

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

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

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

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) 53

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

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

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 56

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 http://www.maxwell.sze.hu/~budait 57

Labor 2 Mikrovezérlők ATMEL AVR ARDUINO 2. FELADATMEGOLDÁS BUDAI TAMÁS

Az AVR architektúra ATMEL AVR mikrovezérlők programozása 59

ATMEL AVR mikrovezérlők programozása ATMEGA 328 8 bites RISC 2 db 8 bites időzítő (számláló) 1 db 16 bites időzítő 6db PWM csatorna 6 vagy 8 db 10 bites ADC USART, SPI, I 2 C interfészek Megszakítás és ébresztés lehetőség szintváltozásra 60

ATMEL AVR mikrovezérlők programozása Általános programstruktúra Szükséges header fájlok beszúrása Inicializálás: Kezdeti értékek, konfigurációs bitek beállítása Főprogram: Az adott feladat végrehajtása, folyamatosan (végtelen ciklus). 61

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 UnoArduSim használata Feladatmegoldás 62

Az UnoArduSim használata UnoArduSim https://www.sites.google.com/site/unoardusim/home Ingyenesen használható Virtuális Arduino UNO 63

Az UnoArduSim használata Forráskód szerkesztő 64

Az UnoArduSim használata változók 65

Az UnoArduSim használata Virtuális Arduino és perifériák 66

Az UnoArduSim használata A program használata 1. forráskód szerkesztése 2. virtuális perifériák behuzalozása 3. futtatás / hibakeresés 4. GOTO 1. 67

Az UnoArduSim használata 1. forráskód szerkesztése a főablakban a C nyelv szabályait betartva 68

Az UnoArduSim használata 2. virtuális perifériák behuzalozása a periféria melletti szövegmezőbe beírva az arduino be/kimenet számát FONTOS: mindig 2 számjegyet kell beírni (ha a láb száma egy számjegyű, egészítsük ki egy 0-val) 69

Az UnoArduSim használata 2. virtuális perifériák behuzalozása példa: a 2. nyomógombot a 3-as lábra: 70

Az UnoArduSim használata 3. futtatás / hibakeresés a megszokott IDE eszközökkel: mentés program futtatása reset betöltés futtatás leállítása 71

Az UnoArduSim használata 3. futtatás / hibakeresés hibakereséshez: run up until highlighted line: futtatás a szerkesztőablakban kijelölt sorig step into: program léptetése (belépés a függvényekbe) step over: program léptetése (függvények átlépése egy lépésben) 72

Az UnoArduSim használata 3. futtatás / hibakeresés hibakereséshez: az alsó, változók ablakban a definiált változók értéke látható, amely futás közben folyamatosan frissül 73

Az UnoArduSim használata FELADATMEGOLDÁS 1. led villogtatás 2. logikai operátorok 3. analóg bemeneti érték beolvasása (A/D) 4. dc motor fordulatszám vezérlése 74