Beágyazott és Ambiens Rendszerek 4. gyakorlat tematikája

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "Beágyazott és Ambiens Rendszerek 4. gyakorlat tematikája"

Átírás

1 Beágyazott és Ambiens Rendszerek 4. gyakorlat tematikája 1. Az UART0 használata Simplicity Configurator segítségével Az előző gyakorlaton mi magunk írtuk meg az UART0 perifériát a kívánt üzemmódba beállító kódot (főleg az emlib függvények segítségével, részben közvetlen regiszter hozzáféréssel). Végezzük el most ugyanezt a Simplicity Configurator használatával! (Emlékeztetőül a beállítani kívánt paraméterek: Baud, 8N1 keret formátum, PE0 használata TX jelként, PE1 használata RX jelként valamint PF7 magas értékűre állítása, hogy az UART0 periféria és a Board Controller közt engedélyezzük az összeköttetést.) 1.1. Simplicity Configurator projekt létrehozása Hozzunk létre egy új Silicon Labs projektet, és válasszuk a Simplicity Configurator Program típust! Egy egyszerű üres C projekthez képest három fontosabb új fájlt vehetünk észre: A.hwconf kiterjesztésű XML fájl tartalmazza a mikrovezérlő egyes moduljainak kívánt beállításait. A fájlt grafikus editor segítségével tudjuk szerkeszteni. Az InitDevice.(c h) állományok a.hwconf fájlban található beállításoknak megfelelő, automatikusan generált forráskódot tartalmazzák. A frissen létrejött projektben alapértelmezetten csak pár beállítás található (alapvetően azzal a céllal, hogy a GPIO perifériát bekapcsoljuk). Ezen beállítások a 14 MHz-es belső RC oszcillátort jelölik ki az órajel forrásaként, valamint engedélyezik a nagy frekvenciás periféria órajelet (általában és a GPIO periféria felé menő ágat is). A generált kódot speciális kommentek között találjuk (ezen részeket nem ajánlott kézzel szerkeszteni), például: // $[High Frequency Clock select] /* Using HFRCO at 14MHz as high frequency clock, HFCLK */ CMU_ClockSelectSet(cmuClock_HF, cmuselect_hfrco); /* Enable peripheral clock */ CMU_ClockEnable(cmuClock_HFPER, true); // [High Frequency Clock select]$ // $[Peripheral Clock enables] /* Enable clock for GPIO by default */ CMU_ClockEnable(cmuClock_GPIO, true); // [Peripheral Clock enables]$ 1

2 1.2. A virtuális COM port kivezetésének engedélyezése Konfiguráljuk be a PF7-es lábat kimenetnek ( Push-pull ), és állítsuk be logikai magas szintre! Ehhez a.hwconf fájl szerkesztése szükséges. A projekt létrehozása után ez a fájl jelenik meg alapértelmezetten a grafikus szerkesztői felületen (ha mégse látszódna, akkor a.hwconf fájlon kattintsunk duplán). A szerkesztői felületnek két alnézete van: DefaultMode Port I/O és DefaultMode Peripherals. Az előbbi a chip lábkiosztását mutatja, az utóbbiban pedig a mikrovezérlőben található perifériák beállítására van lehetőség. Nekünk most a lábkiosztás nézete kell. A PF7-es láb a BGA tok A sorának 6-os oszlopában van: Miután kijelöltük a PF7-es lábat, keressünk egy Properties nevű nézetet, és állítsuk be az alábbiakat: 2

3 (Megjegyzés: ne lepődjünk meg, ha elsőre a Data output sor helyett egy másikat ( Pullup ) látunk. Miután beállítjuk a láb módját Push-pull -ra, meg fog jelenni a Data output sor. Ezen a ponton kicsit furcsán működik a felület. Ha egérkattintással választunk ki egy opciót a legördülő listákból, akkor ahhoz, hogy érvényre is jusson a beállítás, még egy kattintás szükséges valahol az aktuális beviteli mezőn kívül. Alternatív megoldás, hogy kurzormozgató nyilakkal és ENTER billentyűvel végezzük el a beállítást. Ekkor normálisan működik a felület.) Mentsük el a változtatásokat (ez beletelik pár másodpercbe, ugyanis ekkor az InitDevice.(c h) fájlok automatikusan frissítésre kerülnek, hogy tükrözzék az általunk megtett beállításokat). Nézzük meg, hogyan jelenik meg az automatikusan generált kódban az, amit a grafikus felületen elvégeztünk! /* Pin PF7 is configured to Push-pull */ GPIO->P[5].DOUT = (1 << 7); GPIO->P[5].MODEL = (GPIO->P[5].MODEL & ~_GPIO_P_MODEL_MODE7_MASK) GPIO_P_MODEL_MODE7_PUSHPULL; A fenti kódrészlet az InitDevice.c fájlban található a PORTIO_enter_DefaultMode_from_RESET() függvény törzsében. Érdemes észrevenni, hogy a számunkra érdekes biteket kijelölő maszk inverzének segítségével először az összes érintett bitet nullázzuk, majd a szükségeseket egybe állítjuk. Mi az előző gyakorlaton abból indultunk ki, hogy reset után a bitek nullák, így csak az egybe állítással foglalkoztunk. Ha ezt nem feltételezhetjük, akkor a fenti, robusztusabb kód használata javasolt. Másik megjegyzés a fenti kódhoz, hogy itt direkt regiszter hozzáférést választottak az automatikus kód generátor készítői. Általánosságban azonban inkább az emlib funkcióit fogják a generált kódrészletek használni. Az InitDevice.h fájlban találhatóak a függvények prototípusai. Ezeken felül a saját beállításainkhoz tartozó kódrészletet is megtaláljuk: // $[User-defined pin name abstraction] #define VCOM_EN_PIN (7) #define VCOM_EN_PORT (gpioportf) // [User-defined pin name abstraction]$ 1.3. Az UART0 periféria felkonfigurálása Ehhez váltsunk át a konfigurációs fájl grafikus szerkesztőjének DefaultMode Peripherals alnézetére: 3

4 Rakjunk egy pipát az UART0 dobozba, hogy engedélyezzük a perifériát, majd végezzük el a szükséges konfigurációs paraméterek megadását ( Properties fül): 4

5 1.4. A használni kívánt lábak beállítása Először is meg kell mondanunk, hogy az UART0 jeleit (TX és RX) mely lábakra szeretnénk kivezetni. Az STK3700 kártya a Location 1 -el jelölt kombinációt feltételezi. Keressünk meg az Outline nézetet, és jelöljük ki a Port I/O sort: Ennek hatására egy másik, Peripheral Mapping nevű fülre is rákerül a fókusz (ha mégsem történne meg, akkor válasszuk mi ki). Itt görgessünk el az UART0 perifériához, és állítsuk be megfelelően: 5

6 Ezzel kiválasztottuk az UART0 által használni kívánt lábakat. Azonban ez még így nem elegendő (a fejlesztői környezet figyelmeztet is a hibára): A portok lábainak meghajtását ugyanis a GPIO periféria végzi. Így az RX lábat bemenetnek, a TX lábat kimenetnek ( Push-pull ) kell definiálni (továbbá ez utóbbit érdemes logikai magas értékre inicializálni, tekintve, hogy az UART kommunikáció nyugalmi állapota az 1). Menjünk tehát vissza a.hwconf szerkesztőjében a lábak nézetre ( DefaultMode Port I/O ), és végezzük el a kért beállításokat! 6

7 Mentés után nézzük meg, mi módosult az InitDevice.(c h) fájlokban! InitDevice.c extern void enter_defaultmode_from_reset(void) { // $[Config Calls] CMU_enter_DefaultMode_from_RESET(); UART0_enter_DefaultMode_from_RESET(); PORTIO_enter_DefaultMode_from_RESET(); // [Config Calls]$ } Látható, hogy a fő inicializáló függvény törzsébe bekerült az UART0 perifériát inicializáló függvény meghívása. Nézzük meg, mit tartalmaz ez a függvény: extern void UART0_enter_DefaultMode_from_RESET(void) { // $[UART_InitAsync] USART_InitAsync_TypeDef initasync = USART_INITASYNC_DEFAULT; initasync.baudrate = ; initasync.databits = usartdatabits8; initasync.parity = usartnoparity; initasync.stopbits = usartstopbits1; initasync.oversampling = usartovs16; #if defined( USART_INPUT_RXPRS ) && defined( USART_CTRL_MVDIS ) initasync.mvdis = 0; initasync.prsrxenable = 0; initasync.prsrxch = 0; #endif USART_InitAsync(UART0, &initasync); // [UART_InitAsync]$ // $[USART_InitPrsTrigger] USART_PrsTriggerInit_TypeDef initprs = USART_INITPRSTRIGGER_DEFAULT; initprs.rxtriggerenable = 0; initprs.txtriggerenable = 0; initprs.prstriggerchannel = usartprstriggerch0; } USART_InitPrsTrigger(UART0, &initprs); // [USART_InitPrsTrigger]$ 7

8 A helyes működéshez természetesen órajelet is kell adni az UART0 perifériának, így kiegészült a CMU-t beállító függvény is az alábbiakkal: /* Enable clock for UART0 */ CMU_ClockEnable(cmuClock_UART0, true); Valamint a portok beállítását elvégző függvénybe is bekerültek az RX, TX jelek által használt lábak beállításai: /* Pin PE0 is configured to Push-pull */ GPIO->P[4].DOUT = (1 << 0); GPIO->P[4].MODEL = (GPIO->P[4].MODEL & ~_GPIO_P_MODEL_MODE0_MASK) GPIO_P_MODEL_MODE0_PUSHPULL; /* Pin PE1 is configured to Input enabled */ GPIO->P[4].MODEL = (GPIO->P[4].MODEL & ~_GPIO_P_MODEL_MODE1_MASK) GPIO_P_MODEL_MODE1_INPUT; Valamint az általunk kért kivezetési mód: /* Module UART0 is configured to location 1 */ UART0->ROUTE = (UART0->ROUTE & ~_UART_ROUTE_LOCATION_MASK) UART_ROUTE_LOCATION_LOC1; /* Enable signals RX, TX */ UART0->ROUTE = UART_ROUTE_RXPEN UART_ROUTE_TXPEN; 1.5. A main.c módosítása Valamilyen oknál fogva a konfigurátor két apró, triviális módosításról megfeledkezik, jóllehet ezek szükségesek ahhoz, hogy a beállítások érvényre jussanak. Így ezeket nekünk kell megtennünk: Hivatkozzuk be az initdevice.h fejléc fájlt Hívjuk meg az enter_defaultmode_from_reset() függvényt a main()-ből A függvény meghívása után a mikrovezérlőnek az általunk a grafikus felületen beállított módon kell működnie. Próbáljuk is ki a kommunikációt (pl. a vett karakterek folyamatos visszaküldésével). #include "em_device.h" #include "em_chip.h" #include "InitDevice.h" #include "em_usart.h" int main(void) { /* Chip errata */ CHIP_Init(); } enter_defaultmode_from_reset(); /* Infinite loop */ while (1) { USART_Tx(UART0, USART_Rx(UART0)); } 8

9 Ahhoz, hogy az USART küldő és fogadó függvényeket használhassuk, természetesen be kell hivatkozni az em_usart.h fejléc fájlt. A hozzá tartozó forrás fájlt szerencsére nem kell nekünk hozzáadni a projekthez, az az UART0 engedélyezésekor automatikusan bekerült a projekt emlib alkönyvtára alá. 2. Megszakításkezelés (UART0 RX Data Valid) Az USART_Rx() függvény blokkol (addig nem tér vissza, amíg nem sikerül venni egy karaktert). Ez a fenti, egyszerű programban nem okoz gondot, de ha a főciklus bármi mást is szeretne csinálni, akkor már problémát jelentene. Egy lehetséges megoldás, ha először lekérdezzük a periféria státuszát (USART_StatusGet()), és csak akkor olvasunk, ha jött is valami. Viszont elképzelhető az az eset, hogy ideiglenesen több karakter is érkezik gyors egymásutánjában. Ekkor adatvesztés léphet fel, ha nem tudjuk azonnal kiolvasni a vett karaktert (mert a főciklus épp egy másik, időigényes feladatával foglalkozik). Ez utóbbi problémára megoldást nyújthatnak a megszakítások. A megszakítások tetszőleges kód futását meg tudják szakítani, és a kezelésükre hivatott kódrészlet így el tudja végezni az időkritikus feladatokat. A mi példánknál maradva ez a vett karakter kiolvasását jelenti egy bufferbe. Megjegyzés: a buffer méretének elegendően nagynak kell lennie ahhoz, hogy a rövid idő alatt jött karakterek feltételezett maximális száma mellett se legyen adatvesztés (ha üzemszerűen jönnek gyakrabban a karakterek, mint ahogy fel tudjuk dolgozni őket, akkor természetesen nincs akkora buffer, ami ezt ki tudná védeni). Mi most az egyszerűség kedvéért azt feltételezzük, hogy egy egy elemű buffer is elegendő, így egyszerűen egy bájtot fogunk használni a vett karakter eltárolására. (Az UART0 perifériában hardveresen így is van egy három elemű buffer, így a valóságban tulajdonképpen négy hosszú bufferünk van.) 2.1. Engedélyezzük az UART0 periféria RX Data Valid megszakítását Az első lépés az UART0 periféria megfelelő megszakításának engedélyezése. Ez legyen az RX Data Valid, ami akkor lép fel, ha van (legalább egy) kiolvasható karakter a periféria bufferében. Az engedélyezéshez az USART_IntEnable() függvényt használjuk! Első paramétere a kérdéses periféria (figyelem, ne keverjük össze az UART0 perifériát az USART0-val). A második pedig az engedélyezni kívánt megszakítás, amit az USART_IF_<megszakítás_rövid_neve> defineokkal tudunk kiválasztani (egyszerre akár többet is, ha összevagyoljuk őket) Engedélyezzük az UART0 periféria vételi megszakítását a processzor oldalán is Az előző feladatpontban egyelőre csak azt oldottuk meg, hogy az UART0 periféria kérjen megszakítást, ha van új (még ki nem olvasott) adatt a vételi buffereiben. Ez azonban nem jelenti azt, hogy a processzor ki is fogja szolgálni ezt a megszakítást! Ehhez a processzor megszakítás vezérlőjében (NVIC 1 ) engedélyezni kell az UART0 periféria felől érkező vételi megszakítást. Megjegyzés: a vétellel kapcsolatban az UART perifériák több fajta megszakítást is kérhetnek (a fent említetten kívül tartozik megszakítás ahhoz is, ha pl. már teljesen tele van a buffer, vagy a vett 1 Nested Vectored Interrupt Controller 9

10 karakterben paritás hiba lépett fel). Az összes lehetséges, vétellel kapcsolatos megszakítás egy forrássá összefogva jelenik meg a processzor számára (UART0_RX). A megszakítás vezérlőben az egyes interrupt forrásokat engedélyezni az NVIC_EnableIRQ() függvénnyel lehet. Nézzük meg, hogy milyen típusú paramétert vár a függvény, és válasszuk ki a megfelelő értéket (figyelem, itt se keverjük össze az UART0 perifériát az USART0-val) A megszakítás kezelő rutin megírása A megszakítás kezelő rutin (Interrupt Service Routine, ISR) a Cortex mikrovezérlők esetében hagyományos C nyelvű függvénnyel implementálható. Ezeket a startup kód előre definiáltan tartalmazza. Kezdőcímeiket pedig a startup kód be is írja a program memória elején található ún. megszakítás vektor táblába. Ha egy megszakítás érvényre jut, a hozzá tartozó címet innen nézi ki a processzor, és az éppen aktuális utasítás végrehajtása után a megjelölt címre ugrik. Nekünk tehát annyi a dolgunk, hogy a megfelelő névvel létrehozunk egy függvényt, amivel felüldefiniáljuk a startup kódban lévőt. Megjegyzések: A startup kódban található rutinokat weak szimbólummal kerültek definiálásra. Ez teszi lehetővé azt, hogy később mi felül tudjuk írni őket. A weak szimbólum nem standard C. Ezt ahány fordító, annyi módon oldják meg. Az, hogy egy megszakítás kezelő rutin hagyományos függvénnyel kiszolgálható, nem triviális. Az aktuális kód végrehajtása során a processzor belső regiszterei ugyanis meghatározott állapotot vesznek fel, ezt nevezik kontextusnak. Pl. az egyik általános célú regiszterben egy ciklusváltozó tárolódik, míg a legutóbbi aritmetikai utasítás bebillentett bizonyos biteket a státusz regiszterben, stb. Ha ezt tetszőleges ponton megszakítja egy interrupt, akkor a megszakítás kiszolgálására hivatott kód végrehajtása során potenciálisan felülíródhat az eredeti kontextus. Ez pedig gondot okoz majd a megszakításból való visszatérés során. Egyszerűbb architektúrák esetén a hardver automatikusan csak azt tudja, hogy hova kell majd visszatérni, de a kontextust kódból kell elmenteni Definiáljuk a megszakítás kezelő rutin függvényét Nézzük tehát meg, hogy milyen nevű rutin tartozik a startup kódban az UART0_RX megszakításhoz (a startup kód a CMSIS/EFM32GG/startup_gcc_efm32gg.s fájlban található)! Ezzel a névvel hozzunk létre egy függvényt a saját kódunkban (mind a visszatérési értéke, mind a paramétere void, továbbá itt se keverjük össze az USART0 perifériával az UART0-t)! Olvassuk ki a vett karaktert Az ISR-ben értelem szerűen olvassuk ki a vett karaktert. Ezt egy globális változóba írjuk bele, hogy később majd a háttérben futó kód is hozzá tudjon férni. Kiolvasásra használható a már megismert USART_Rx(), azonban célszerűbb az USART_RxDataGet(). Az előbbi ugyanis a kilvasás előtt addig vár, ameddig a periféria nem jelzi egy megfelelő bit bebillentésével, hogy érkezett egy új karakter. Ez felesleges, ha már ISR-ünkben vagyunk, hisz az épp akkor hívódik meg, ha jött karakter Értesítsük a háttérben futó kódot A main() főciklusában futó kódot értesítsük az új karakter érkezéséről. Ezt szintén egy globális változón keresztül tudjuk megtenni (pl. egy bool, amit true-ra állítunk). 10

11 Nyugtázzuk a megszakítást Sok megszakítás esetében pusztán az a tény, hogy bekerültünk az ISR-be, nem nyugtázza az adott interruptot. Azaz az ISR-ből való kilépés után ismét fog egy ugyanolyan megszakítás keletkezni. Az interrupt kérést törölni pl. az USART_IntClear() függvény segítségével lehet. Az általunk használ megszakítás viszont olyan, hogy ha kiolvassuk a vett karaktert, akkor az egyben nyugtázásnak is megfelel, így explicit módon az interrupt nyugtázásától most eltekinthetünk A főciklus módosítása Módosítsuk a főciklust úgy, hogy vegyük ki a karakter fogadást (lévén azt most a megszakítás végzi el, és teszi bele egy globális változóba). Cserébe viszont a karakter visszaküldését tegyük feltétel függővé (azaz csak akkor történjen meg, ha jelzett nekünk a megszakítás). Természetesen ekkor a jelzést töröljük Fordítói optimalizációk hatása Próbáljuk ki, hogy mi történik, ha optimalizált módon fordítunk (ehhez a Release típusú build kell az eddigi Debug helyett). Jó eséllyel nem fog működni a programunk. Ennek az az oka, hogy az optimalizációk hatására a fordító kb. a következőképpen gondolkodik. Az a változó, amin keresztül az ISR jelez a főciklusnak, alapértelmezetten false értékű, és ezt követően sehol nem íródik át true-ra. Hisz ugyan az ISR függvényében van egy ilyen sor, de az ISR-t, mint függvényt, senki nem hívja meg, így nem is fog futni. Tehát a jelzésre használt változó végig false értékű. Így viszont a főciklusban a feltételhez kötött teljes kód kiszedhető, hisz úgyse fog soha lefutni, és feleslegesen minek foglalja a helyet a program memóriában. A probléma megoldható, ha a jelzésre használt változó definíciójába beírjuk a volatile kulcsszót is. Ez angolul illékonyat jelent. Azt mondjuk meg vele a fordítónak, hogy a megjelölt változó mögötti memória tartalma bármikor megváltozhat, így ne próbáljon meg optimalizálni, hanem minden hozzáféréskor ténylegesen olvassa ki az adott változót. Megjegyzés: nagy valószínűséggel a probléma csak a jelzésre használt változót érinti. A karakter átadására használt változó esetén nincs ilyen gond. Jóllehet, a fenti logika szerint ott is lehetne egy picit spórolni azzal, ha nem végeznénk el a változó kiolvasását minden ciklusban, hanem a kezdeti értékét feltételeznénk mindig. Talán azért, mert ez már nem jelentene nagy előnyt, talán más okból kifolyólag, de itt nem optimalizál a fordító. Mindenesetre, ha így is van, ezt a változót is jelöljük meg a volatile kulcsszóval! 3. Energia hatékony működés Nem túl hatékony dolog egy főciklusban folytonosan arra várakozni, hogy bebillenjen egy változó. A processzorokat általában el lehet altatni valamilyen mélységig, amiből általában megszakítások hatására fel tudnak ébredni. A Giant Gecko mikrovezérlők esetén is több ilyen mód van. A legegyszerűbb esetben csak magát a CPU-t tesszük el aludni (nem kap órajelet), de a többi periféria üzemel. Ezt EM1-nek nevezik. Nézzük meg először, hogy mennyit fogyaszt jelenleg a panel! 11

12 Ezt követően módosítsuk a kódot úgy, hogy a főciklusban léptessük be a processzort az EM1 módba! Az energiatakarékos üzemmódok közti váltásért a mikrovezérlő EMU (Energy Management Unit) perifériája felel. Így az emlib forrás fájlok közül az em_emu.c -re lesz szükségünk. Ez valószínűleg alapértelmezetten is része a projektnek. Ha nem, tegyük be! A használandó függvény az EMU_EnterEM1(). Ahhoz természetesen, hogy ezt meg tudjuk rendesen hívni, hivatkozzuk be az em_emu.h fejléc fájl! Nézzük meg, sikerült-e csökkenteni a fogyasztást. Megjegyzés: tekintettel arra, hogy most csak egy megszakítást használunk, felébredés után biztosak lehetünk abban, hogy érkezett egy karakter. Így akár a jelzésre használ változó és annak kezelése mellőzhető. 4. Az LCD használata 4.1. Gyári függvények segítségével A panelen található LCD használata az SDK részét képező függvényeknek hála igen egyszerű. A szükséges fájl a segmentlcd.c. 2 Ezt adjuk hozzá a projekthez (pl. egy drivers almappába). A benne található függvények deklarációi pedig a segmentlcd.h headerben vannak, így ezt hivatkozzuk be. Mivel az LCD vezérlésére a mikrovezérlőben található LCD kontroller perifériát használja a segmentlcd.c, ezért szükséges még az em_lcd.c 3 fájl hozzáadása is a projekthez. Az LCD-t használat előtt inicializálni kell, erre a SegmentLCD_Init() használható. Egyetlen paramétere az erősebb meghajtást engedélyezi. Alapvetően e nélkül is jók vagyunk, így legyen fasle (ha valakinél nagyon gyenge az LCD képe, ki lehet próbálni true megadásával, hátha jobb lesz tőle). Az LCD-re írást kipróbálhatjuk pl. úgy, hogy a főciklusunkat kiegészítjük a vett karakter ASCII kódjának kiírásával (SegmentLCD_Number()). A többi függvény használata self explanatory Szegmensenkénti meghajtás A házi feladatokhoz szükséges, hogy az LCD alsó felén elhelyezkedő, hét darab alfanumerikus karakter kiírására alkalmas kijelzőt szegmensenként is tudjuk vezérelni. Ehhez a gyári SDK nem ad támogatást. Azt nekünk kellett kiegészíteni, módosítani. Ehhez van egy demo projekt (displaysegmentfield). Ezt be lehet importálni, és meg lehet nézni, hogyan kell használni. Mivel viszonylag egyértelmű, ezért alapvetően ez is self explanatory 5. Stdio használata (UART0) Az UART0 perifériát eddig direkt módon használtuk az USART_Rx() és USART_Tx() függvények segítségével. Azonban hordozhatóbb kódot kapnánk, ha helyettük a standard getchar(), putchar() függvényeket tudnánk használni. Nem beszélve pl. a printf() nyújtotta kényelemről. Szerencsére a C nyelv standard I/O-ja átirányítható. A magas szintű, általunk használható rutinok alacsonyabb szintű függvényeket használnak, amik olyan alap funkció ellátására képesek, mint egy 2 A most használt virtuális gépen itt található: C:\SiliconLabs\SimplicityStudio\v4\developer\sdks\gecko_sdk_suite\v1.1\hardware\kit\common\drivers 3 Az emlibhez tartozó fájlok pedig itt: C:\SiliconLabs\SimplicityStudio\v4\developer\sdks\gecko_sdk_suite\v1.1\platform\emlib\src 12

13 karakter küldése, fogadása, stb. Ha ezen függvényeket úgy valósítjuk meg, hogy pl. egy UART perifériát használjanak, akkor végeredményben pl. egy printf() is a soros portra fog írni A szükséges fájlok hozzáadása Ahhoz, hogy működjön a standard I/O átirányítása, két fájlra van szükségünk: retargetio.c és retarget<periféria>.c (a mi esetünkben retargetserial.c). A retargetio.c egy nagyon vékony szoftver réteget definiál, amiben azon részeket tették bele, amik közösek, akármelyik konkrét perifériára is akarjuk átirányítani a standard be- ill. kimenetet. A másik pedig a választott perifériára implementált kódrészleteket tartalmazza. Adjuk hozzá tehát a projekthez (pl. egy drivers almappa alá) a következő fájlokat 4 : retargetio.c retargetserial.c Megjegyzések: Ha belenézünk a fájlokba, látszik, hogy a karakterek fogadása interrupt segítségével történik. Így tehát a retargetserial.c használata esetén mi magunk már nem használhatjuk a kiválasztott U(S)ART periféria Rx Data Valid megszakítását. Továbbá érdemes észrevenni, hogy a getchar() akkor is vissza fog térni, ha nincs fogatott karakter, csak épp -1 a visszatérési érték (ergo nem blokkol ez a függvényhívás). A fenti fájlok igényelnek más egyéb fájlokat. Attól függően, hogy milyen projekthez adtuk őket hozzá, több-kevesebb egyéb fájlt is hozzá kell tennünk. Első körben a retargetserial.c -nek triviális függése az alábbi, mivel a soros portra irányítunk át. Ha ez nem lenne benne a projektben, adjuk hozzá (pl. az emlib mappa alá): em_usart.c Mivel a soros porti perifériák meghajtásához kell órajel, a lábaikat megfelelően ki kell vezetni, továbbá a beállításuk során az emlib használ egyéb alap függvényeket, az alábbi három fájl is kell (ha már nem tartalmazná a projekt): em_core.c em_cmu.c em_gpio.c 5.2. A használni kívánt soros port kiválasztása Ezt preprocesszor direktívákkal tudjuk megtenni, amiket a projekt számára előre definiálnunk kell (ekkor a fordítás során parancssori paraméterként kerülnek átadásra). Két érték kell: RETARGET_UART0, hogy az UART0-t használjuk, és RETARGET_VCOM, hogy engedélyezzük is az UART0 kivezetését a Board Controlleren keresztül az USB portra mint virtuális soros port. A define-ok értéke legyen 1-1. Ezt az alábbi helyen tudjuk megtenni (Project / Properties): 4 A most használt virtuális gépben itt vannak: C:\SiliconLabs\SimplicityStudio\v4\developer\sdks\gecko_sdk_suite\v1.1\hardware\kit\common\drivers 13

14 Használata Hivatkozzuk be először is az alábbi kettő fejlécet: stdio.h retargetserial.h Ezt követően hívjuk meg az alábbit: RETARGET_SerialInit() Opcionálisan az alábbit is meghívhatjuk: RETARGET_SerialCrLf() Ennek ha igaz értéket adunk paraméterül, akkor bármelyik sorvég karaktert is küldjük ki (\r (carriage return, kocsi vissza) vagy \n (new line, line feed, új sor, sor emelés)) automatikusan beszúrja a másikat. Így kicsit kényelmesebb a printf() használata. Ezek után az alábbinak már működnie kell: printf("hello!\n"); 14

Silabs STK3700, Simplicity Studio laborgyakorlat

Silabs STK3700, Simplicity Studio laborgyakorlat Silabs STK3700, Simplicity Studio laborgyakorlat Scherer Balázs Budapest University of Technology and Economics Department of Measurement and Information Systems BME-MIT 2016 Saját Firmware library Saját

Részletesebben

Programozási segédlet DS89C450 Fejlesztőpanelhez

Programozási segédlet DS89C450 Fejlesztőpanelhez Programozási segédlet DS89C450 Fejlesztőpanelhez Készítette: Fekete Dávid Processzor felépítése 2 Perifériák csatlakozása a processzorhoz A perifériák adatlapjai megtalálhatók a programozasi_segedlet.zip-ben.

Részletesebben

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

Az AVR programozás alapjai. Előadja: Both Tamás Az AVR programozás alapjai Előadja: Both Tamás Fordító C nyelven programozunk Ehhez az AVR-GCC fordító áll rendelkezésre Ennek használatához a WinAVR-t kell telepíteni Teljes értékű C fordító, minden megengedett,

Részletesebben

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

Az MSP430 mikrovezérlők digitális I/O programozása 10.2.1. Az MSP430 mikrovezérlők digitális I/O programozása Az MSP430 mikrovezérlők esetében minden kimeneti / bemeneti (I/O) vonal önállóan konfigurálható, az P1. és P2. csoportnak van megszakítás létrehozó

Részletesebben

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

Mintavételes szabályozás mikrovezérlő segítségével Automatizálási Tanszék Mintavételes szabályozás mikrovezérlő segítségével Budai Tamás budai.tamas@sze.hu http://maxwell.sze.hu/~budait Tartalom Mikrovezérlőkről röviden Programozási alapismeretek ismétlés

Részletesebben

Az operációs rendszer szerkezete, szolgáltatásai

Az operációs rendszer szerkezete, szolgáltatásai Az operációs rendszer szerkezete, szolgáltatásai Felhasználói programok Rendszerhívások Válaszok Kernel Eszközkezelők Megszakításvezérlés Perifériák Az operációs rendszer szerkezete, szolgáltatásai Felhasználói

Részletesebben

Az interrupt Benesóczky Zoltán 2004

Az interrupt Benesóczky Zoltán 2004 Az interrupt Benesóczky Zoltán 2004 1 Az interrupt (program megszakítás) órajel generátor cím busz környezet RESET áramkör CPU ROM RAM PERIF. adat busz vezérlõ busz A periféria kezelés során információt

Részletesebben

C programozási nyelv

C programozási nyelv C programozási nyelv Előfeldolgozó utasítások Dr Schuster György 2011 május 3 Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 1 / 15 A fordítás menete Dr Schuster György

Részletesebben

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

T Bird 2. AVR fejlesztőpanel. Használati utasítás. Gyártja: BioDigit Kft. Forgalmazza: HEStore.hu webáruház. BioDigit Kft, 2012. Minden jog fenntartva T Bird 2 AVR fejlesztőpanel Használati utasítás Gyártja: BioDigit Kft Forgalmazza: HEStore.hu webáruház BioDigit Kft, 2012 Minden jog fenntartva Főbb tulajdonságok ATMEL AVR Atmega128 típusú mikrovezérlő

Részletesebben

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport 10-es Keressünk egy egész számokat tartalmazó négyzetes mátrixban olyan oszlopot, ahol a főátló alatti elemek mind nullák! Megolda si terv: Specifika cio : A = (mat: Z n m,ind: N, l: L) Ef =(mat = mat`)

Részletesebben

Programozás C++ -ban 2007/7

Programozás C++ -ban 2007/7 Programozás C++ -ban 2007/7 1. Másoló konstruktor Az egyik legnehezebben érthető fogalom C++ -ban a másoló konstruktor, vagy angolul "copy-constructor". Ez a konstruktor fontos szerepet játszik az argumentum

Részletesebben

A Memory Interface Generator (MIG) beállítása a Logsys Kintex-7 FPGA kártyához

A Memory Interface Generator (MIG) beállítása a Logsys Kintex-7 FPGA kártyához A Memory Interface Generator (MIG) beállítása a Logsys Kintex-7 FPGA kártyához Ellenőrizzük a projektből importált adatokat. Ha rendben vannak, akkor kattintsunk a Next gombra. Válasszuk a Create Design

Részletesebben

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

Járműfedélzeti rendszerek I. 4. előadás Dr. Bécsi Tamás Járműfedélzeti rendszerek I. 4. előadás Dr. Bécsi Tamás Rendszer órajel Órajel osztás XTAL Divide Control (XDIV) Register 2 129 oszthat Órajel források CKSEL fuse bit Külső kristály/kerámia rezonátor Külső

Részletesebben

loop() Referencia: https://www.arduino.cc/en/reference/homepage

loop() Referencia: https://www.arduino.cc/en/reference/homepage Arduino alapok Sketch ~ Solution Forrás:.ino (1.0 előtt.pde).c,.cpp,.h Külső könyvtárak (legacy / 3rd party) Mintakódok (example) setup() Induláskor fut le, kezdeti értékeket állít be, inicializálja a

Részletesebben

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

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe Mechatronika és mikroszámítógépek 2017/2018 I. félév Bevezetés a C nyelvbe A C programozási nyelv A C egy általános célú programozási nyelv, melyet Dennis Ritchie fejlesztett ki Ken Thompson segítségével

Részletesebben

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

T Bird 2. AVR fejlesztőpanel. Használati utasítás. Gyártja: BioDigit Kft. Forgalmazza: HEStore.hu webáruház. BioDigit Kft, 2012. Minden jog fenntartva T Bird 2 AVR fejlesztőpanel Használati utasítás Gyártja: BioDigit Kft Forgalmazza: HEStore.hu webáruház BioDigit Kft, 2012 Minden jog fenntartva Főbb tulajdonságok ATMEL AVR Atmega128 típusú mikrovezérlő

Részletesebben

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

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 I. C8051Fxxx mikrovezérlők hardverfelépítése, működése 1. Adja meg a belső RAM felépítését! 2. Miben különbözik a belső RAM alsó és felső felének elérhetősége? 3. Hogyan érhetők el az SFR regiszterek?

Részletesebben

Ingyenes DDNS beállítása MAZi DVR/NVR/IP eszközökön

Ingyenes DDNS beállítása MAZi DVR/NVR/IP eszközökön Ingyenes DDNS beállítása MAZi DVR/NVR/IP eszközökön Fontos Amennyiben egy eszköz interneten keresztüli elérését lehetővé teszi, az illetéktelen hozzáférés megakadályozása érdekében: előtte az alapértelmezett

Részletesebben

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

Mintavételezés tanulmányozása. AD - konverzió. Soros kommunikáció Mintavételezés tanulmányozása. AD - konverzió. Soros kommunikáció A gyakorlat célja A gyakorlat során a dspic30f6010 digitális jelprocesszor Analóg Digital konverterét tanulmányozzuk. A mintavételezett

Részletesebben

FELHASZNÁLÓI ÚTMUTATÓ

FELHASZNÁLÓI ÚTMUTATÓ FELHASZNÁLÓI ÚTMUTATÓ VÉRADÁS IDŐPONT SZERKESZTŐ (verzió: 1.2) 2013. április 1. Tartalomjegyzék 1. Telepítés és indítás... 3 2. Frissítés... 3 3. Beállítás... 4 4. Felület... 4 5. Véradó helyszínek...

Részletesebben

A vezérlő alkalmas 1x16, 2x16, 2x20, 4x20 karakteres kijelzők meghajtására. Az 1. ábrán látható a modul bekötése.

A vezérlő alkalmas 1x16, 2x16, 2x20, 4x20 karakteres kijelzők meghajtására. Az 1. ábrán látható a modul bekötése. Soros LCD vezérlő A vezérlő modul lehetővé teszi, hogy az LCD-t soros vonalon illeszthessük alkalmazásunkhoz. A modul több soros protokollt is támogat, úgy, mint az RS232, I 2 C, SPI. Továbbá az LCD alapfunkcióit

Részletesebben

Labor gyakorlat Mikrovezérlők

Labor gyakorlat Mikrovezérlők 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

Részletesebben

Mikrorendszerek tervezése

Mikrorendszerek tervezése BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Mikrorendszerek tervezése Megszakítás- és kivételkezelés Fehér Béla Raikovich

Részletesebben

Közegek és felületek megadása

Közegek és felületek megadása 3. Előadás Közegek és felületek megadása A gyakorlatban nem közömbös, hogy az adott közeg milyen anyagi tulajdonságokkal bír. (Törésmutató, felület típusa, érdessége ) Lehetőség van az anyagok közegének,

Részletesebben

9.1.1. ARM mikrovezérlők programozása

9.1.1. ARM mikrovezérlők programozása 9.1.1. ARM mikrovezérlők programozása E fejezetben az ARM mikrovezérlők programozása lesz ismertetve néhány példaprogram és gyakorlati alkalmazás bemutatásával. Az általunk használt ARM mikrovezérlő gyártója

Részletesebben

C++ programozási nyelv Konstruktorok-destruktorok

C++ programozási nyelv Konstruktorok-destruktorok C++ programozási nyelv Konstruktorok-destruktorok Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. szeptember A C++ programozási nyelv Soós Sándor 1/20 Tartalomjegyzék

Részletesebben

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

Programozás II. 2. Dr. Iványi Péter Programozás II. 2. Dr. Iványi Péter 1 C++ Bjarne Stroustrup, Bell Laboratórium Első implementáció, 1983 Kezdetben csak precompiler volt C++ konstrukciót C-re fordította A kiterjesztés alapján ismerte fel:.cpp.cc.c

Részletesebben

C programozási nyelv Pointerek, tömbök, pointer aritmetika

C programozási nyelv Pointerek, tömbök, pointer aritmetika C programozási nyelv Pointerek, tömbök, pointer aritmetika Dr. Schuster György 2011. június 16. C programozási nyelv Pointerek, tömbök, pointer aritmetika 2011. június 16. 1 / 15 Pointerek (mutatók) Pointerek

Részletesebben

4. Laborgyakorlat. A fájlokról ezeket az adatokat, a fájlrendszer tárolja. Számunkra az 1, 3, 4. oszlopok lesznek az érdekesek.

4. Laborgyakorlat. A fájlokról ezeket az adatokat, a fájlrendszer tárolja. Számunkra az 1, 3, 4. oszlopok lesznek az érdekesek. Linux fájlrendszerek. 4. Laborgyakorlat Előző gyakorlaton, már volt szó a fájlrendszerekről, mikor a mount parancs -t kapcsolójáról volt szó. Linux alatt, az egyes fájlokhoz való hozzáférések miatt, a

Részletesebben

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek Programozás alapjai gyakorlat 4. gyakorlat Konstansok, tömbök, stringek Házi ellenőrzés (f0069) Valósítsd meg a linuxos seq parancs egy egyszerűbb változatát, ami beolvas két egész számot, majd a kettő

Részletesebben

Beágyazott rendszerek fejlesztése laboratórium DSP fejlesztési technológiák

Beágyazott rendszerek fejlesztése laboratórium DSP fejlesztési technológiák BME-MIT Beágyazott rendszerek fejlesztése laboratórium DSP fejlesztési technológiák Bevezető mérési feladatok a Beágyazott operációs rendszer alkalmazása jelfeldolgozó processzoron című altémához Orosz

Részletesebben

Perifériák hozzáadása a rendszerhez

Perifériák hozzáadása a rendszerhez Perifériák hozzáadása a rendszerhez Intellectual Property (IP) katalógus: Az elérhető IP modulok listája Bal oldalon az IP Catalog fül Ingyenes IP modulok Fizetős IP modulok: korlátozások Időkorlátosan

Részletesebben

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi.

A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi. Függvények 1.Függvények...1 1.1.A függvény deníció szintaxisa... 1..Függvények érték visszatérítése...3 1.3.Környezettel kapcsolatos kérdések...4 1.4.Lokális változók használata...4 1.5.Rekurzív hívások...5.kód

Részletesebben

Dr. Schuster György október 14.

Dr. Schuster György október 14. Real-time operációs rendszerek RTOS 2011. október 14. A fordítás vázlata prog.c Előfeldolgozó Átmenti állomány Fordító prog.obj más.obj-tek könyvtárak indító kód Linker futtatható kód Ismétlés Előfeldolgozó

Részletesebben

Az internet ökoszisztémája és evolúciója. Gyakorlat 1

Az internet ökoszisztémája és evolúciója. Gyakorlat 1 Az internet ökoszisztémája és evolúciója Gyakorlat 1 GNS3: installálás és konfiguráció GNS3: hálózatszimulátor Valódi router/hoszt image-ek hálózatba kapcsolása emulált linkeken keresztül: CISCO, Juniper,

Részletesebben

KARAKTERFELISMERÉS AZ EVASYS-BEN

KARAKTERFELISMERÉS AZ EVASYS-BEN KARAKTERFELISMERÉS AZ EVASYS-BEN HOL HASZNÁLHATÓ, KI HASZNÁLHATJA A Miskolci Egyetem megvásárolta a kézírásfelismerés (ICR) modult az Evasys legutóbbi licencével együtt. Ezzel lehetőség nyílt a papír alapú

Részletesebben

ÉRZÉKELŐK ÉS BEAVATKOZÓK I. GY1.1 SENSACT0 PÉLDAPROGRAM

ÉRZÉKELŐK ÉS BEAVATKOZÓK I. GY1.1 SENSACT0 PÉLDAPROGRAM ÉRZÉKELŐK ÉS BEAVATKOZÓK I. GY1.1 SENSACT0 PÉLDAPROGRAM Dr. Soumelidis Alexandros 2018.09.06. BME KÖZLEKEDÉSMÉRNÖKI ÉS JÁRMŰMÉRNÖKI KAR 32708-2/2017/INTFIN SZÁMÚ EMMI ÁLTAL TÁMOGATOTT TANANYAG SensAct0

Részletesebben

Beágyazott és Ambiens Rendszerek

Beágyazott és Ambiens Rendszerek Beágyazott és Ambiens Rendszerek 5. gyakorlat tematikája Futási idő mérése, időmérés A gyakorlat során a következő témakörökkel ismerkedünk meg: futási idő mérésének technikája, néhány tipikus utasítás

Részletesebben

10. EGYSZERŰ HÁLÓZATOK TERVEZÉSE A FEJLESZTŐLAPON Ennél a tervezésnél egy olyan hardvert hozunk létre, amely a Basys2 fejlesztőlap két bemeneti

10. EGYSZERŰ HÁLÓZATOK TERVEZÉSE A FEJLESZTŐLAPON Ennél a tervezésnél egy olyan hardvert hozunk létre, amely a Basys2 fejlesztőlap két bemeneti 10. EGYSZERŰ HÁLÓZATOK TERVEZÉSE A FEJLESZTŐLAPON Ennél a tervezésnél egy olyan hardvert hozunk létre, amely a Basys2 fejlesztőlap két bemeneti kapcsolója által definiált logikai szinteket fogadja, megfelelő

Részletesebben

Mérési jegyzőkönyv. az ötödik méréshez

Mérési jegyzőkönyv. az ötödik méréshez Mérési jegyzőkönyv az ötödik méréshez A mérés időpontja: 2007-10-30 A mérést végezték: Nyíri Gábor kdu012 mérőcsoport A mérést vezető oktató neve: Szántó Péter A jegyzőkönyvet tartalmazó fájl neve: ikdu0125.doc

Részletesebben

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

MSP430 programozás Energia környezetben. Kitekintés, további lehetőségek MSP430 programozás Energia környezetben Kitekintés, további lehetőségek 1 Még nem merítettünk ki minden lehetőséget Kapacitív érzékelés (nyomógombok vagy csúszka) Az Energia egyelőre nem támogatja, csak

Részletesebben

Labor gyakorlat Mikrovezérlők

Labor gyakorlat Mikrovezérlők Labor gyakorlat Mikrovezérlők ATMEL AVR ARDUINO 1. ELŐADÁS BUDAI TAMÁS 2015. 09. 06. 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:

Részletesebben

16F628A megszakítás kezelése

16F628A megszakítás kezelése 16F628A megszakítás kezelése A 'megszakítás' azt jelenti, hogy a program normális, szekvenciális futása valamilyen külső hatás miatt átmenetileg felfüggesztődik, és a vezérlést egy külön rutin, a megszakításkezelő

Részletesebben

EDInet Connector telepítési segédlet

EDInet Connector telepítési segédlet EDInet Connector telepítési segédlet A cégünk által küldött e-mail-ben található linkre kattintva, a következő weboldal jelenik meg a böngészőben: Az EdinetConnectorInstall szövegre klikkelve(a képen pirossal

Részletesebben

Digitális Technika. Dr. Oniga István Debreceni Egyetem, Informatikai Kar

Digitális Technika. Dr. Oniga István Debreceni Egyetem, Informatikai Kar Digitális Technika Dr. Oniga István Debreceni Egyetem, Informatikai Kar 3. Laboratóriumi gyakorlat A gyakorlat célja: Négy változós AND, OR, XOR és NOR függvények realizálása Szimulátor használata ciklussal

Részletesebben

Mechatronika és mikroszámítógépek. 2018/2019 I. félév. Külső megszakítások

Mechatronika és mikroszámítógépek. 2018/2019 I. félév. Külső megszakítások Mechatronika és mikroszámítógépek 2018/2019 I. félév Külső megszakítások Megszakítás, Interrupt A megszakítás egy olyan esemény, vagy feltétel teljesülése, amely felfüggeszti a program futását, a vezérlést

Részletesebben

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

SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1 INFORMATIKAI RENDSZEREK ALAPJAI (INFORMATIKA I.) 1 NEUMANN ARCHITEKTÚRÁJÚ GÉPEK MŰKÖDÉSE SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1 Ebben a feladatban a következőket fogjuk áttekinteni: Neumann rendszerű számítógép

Részletesebben

Kameleon Light Bootloader használati útmutató

Kameleon Light Bootloader használati útmutató Kameleon Light Bootloader használati útmutató 2017. Verzió 1.0 1 Tartalom jegyzék 2 1. Bootloader bevezető: A Kameleon System-hez egy összetett bootloader tartozik, amely lehetővé teszi, hogy a termékcsalád

Részletesebben

Választó lekérdezés létrehozása

Választó lekérdezés létrehozása Választó lekérdezés létrehozása A választó lekérdezés egy vagy több rekordforrásból származó adatokat jelenít meg. A választó lekérdezések a táblák, illetve az adatbázis tartalmát nem változtatják meg,

Részletesebben

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra Programozás II. 2. gyakorlat Áttérés C-ről C++-ra Tartalom Új kommentelési lehetőség Változók deklarációjának helye Alapértelmezett függvényparaméterek Névterek I/O műveletek egyszerűsödése Logikai adattípus,

Részletesebben

VARIO Face 2.0 Felhasználói kézikönyv

VARIO Face 2.0 Felhasználói kézikönyv VARIO Face 2.0 Felhasználói kézikönyv A kézikönyv használata Mielőtt elindítaná és használná a szoftvert kérjük olvassa el figyelmesen a felhasználói kézikönyvet! A dokumentum nem sokszorosítható illetve

Részletesebben

VBA makrók aláírása Office 2007 esetén

VBA makrók aláírása Office 2007 esetén VBA makrók aláírása Office 2007 esetén Windows tanúsítványtárban és/vagy kriptográfia eszközökön található tanúsítványok esetén Office 2007 alkalmazással 1(10) 1. Tartalomjegyzék 1. Tartalomjegyzék...

Részletesebben

BASH script programozás II. Vezérlési szerkezetek

BASH script programozás II. Vezérlési szerkezetek 06 BASH script programozás II. Vezérlési szerkezetek Emlékeztető Jelölésbeli különbség van parancs végrehajtása és a parancs kimenetére való hivatkozás között PARANCS $(PARANCS) Jelölésbeli különbség van

Részletesebben

HVK Adminisztrátori használati útmutató

HVK Adminisztrátori használati útmutató HVK Adminisztrátori használati útmutató Tartalom felöltés, Hírek karbantartása A www.mvfportal.hu oldalon a bejelentkezést követően a rendszer a felhasználó jogosultsági besorolásának megfelelő nyitó oldalra

Részletesebben

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

Járműfedélzeti rendszerek II. 2. előadás Dr. Bécsi Tamás Járműfedélzeti rendszerek II. 2. előadás Dr. Bécsi Tamás 4.11. A C előfeldolgozó rendszer A fordítás első lépése a C esetében a különböző nyelvi kiterjesztések feldolgozása: másik állomány tartalmának

Részletesebben

Kézikönyv Számla-módozat rögzítése és alkalmazása

Kézikönyv Számla-módozat rögzítése és alkalmazása Kézikönyv Számla-módozat rögzítése és alkalmazása Tartalomjegyzék 1 ABAS ERP UTASÍTÁS ÁTTEKINTÉS... 5 2 VEVŐ - ÜRES... 8 3 VEVŐ - MEGJELENÍTÉS [70001 TESZTVEV TESZT VEVŐ]... 10 4 VEVŐ - VÁLTOZTATÁS [70001

Részletesebben

Digitális Technika. Dr. Oniga István Debreceni Egyetem, Informatikai Kar

Digitális Technika. Dr. Oniga István Debreceni Egyetem, Informatikai Kar Digitális Technika Dr. Oniga István Debreceni Egyetem, Informatikai Kar 2. Laboratóriumi gyakorlat gyakorlat célja: oolean algebra - sszociativitás tétel - Disztributivitás tétel - bszorpciós tétel - De

Részletesebben

Programozás C és C++ -ban

Programozás C és C++ -ban Programozás C és C++ -ban 2. További különbségek a C és C++ között 2.1 Igaz és hamis A C++ programozási nyelv a C-hez hasonlóan definiál néhány alap adattípust: char int float double Ugyanakkor egy új

Részletesebben

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

Programozás alapjai gyakorlat. 2. gyakorlat C alapok Programozás alapjai gyakorlat 2. gyakorlat C alapok 2016-2017 Bordé Sándor 2 Forráskód, fordító, futtatható állomány Először megírjuk a programunk kódját (forráskód) Egyszerű szövegszerkesztőben vagy fejlesztőkörnyezettel

Részletesebben

SysCVideo: fiktív grafikus kártya SystemC modulként, SDL alapú megjelenítéssel

SysCVideo: fiktív grafikus kártya SystemC modulként, SDL alapú megjelenítéssel SysCVideo: fiktív grafikus kártya SystemC modulként, SDL alapú megjelenítéssel Czirkos Zoltán 2015. augusztus 26. Kivonat Az ismertetett SystemC modul egy mikroprocesszoros rendszerhez illeszthető megjelenítő

Részletesebben

Tartalom jegyzék 1 BEVEZETŐ 2 1.1 SZOFTVER ÉS HARDVER KÖVETELMÉNYEK 2 2 TELEPÍTÉS 2 3 KEZELÉS 5

Tartalom jegyzék 1 BEVEZETŐ 2 1.1 SZOFTVER ÉS HARDVER KÖVETELMÉNYEK 2 2 TELEPÍTÉS 2 3 KEZELÉS 5 Tartalom jegyzék 1 BEVEZETŐ 2 1.1 SZOFTVER ÉS HARDVER KÖVETELMÉNYEK 2 2 TELEPÍTÉS 2 3 KEZELÉS 5 3.1 ELSŐ FUTTATÁS 5 3.2 TULAJDONOSI ADATLAP 6 3.3 REGISZTRÁLÁS 6 3.4 AKTIVÁLÁS 6 3.5 MÉRÉS 7 3.5.1 ÜGYFÉL

Részletesebben

MPLAB IDE - SIM - - Rövid ismertető a használathoz - Kincses Levente 3E22 89/ November 14. Szabadka

MPLAB IDE - SIM - - Rövid ismertető a használathoz - Kincses Levente 3E22 89/ November 14. Szabadka MPLAB IDE - SIM - - Rövid ismertető a használathoz - 3E22 89/2004 2006. November 14 Szabadka - 2 - Tartalomjegyzék TARTALOMJEGYZÉK 3 SIMULATOR I/O 4 SIMULATOR STIMULUS 4 STIMULUS VEZÉRLŐ (CONTROLLER) 5

Részletesebben

C++ programozási nyelv

C++ programozási nyelv C++ programozási nyelv Gyakorlat - 8. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. november A C++ programozási nyelv Soós Sándor 1/12 Tartalomjegyzék Miért

Részletesebben

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés A C programozási nyelv I. Bevezetés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv I. (bevezetés) CBEV1 / 1 A C nyelv története Dennis M. Ritchie AT&T Lab., 1972 rendszerprogramozás,

Részletesebben

A fő menüpontok között a bal vagy jobb nyíllal mozoghatunk, Enter leütésére pedig megjelenik az adott menühöz tartozó tartalom.

A fő menüpontok között a bal vagy jobb nyíllal mozoghatunk, Enter leütésére pedig megjelenik az adott menühöz tartozó tartalom. AMI BIOS SETUP (ASRock 890GX, 890GM Pro3) Menü kezelése A fő menüpontok között a bal vagy jobb nyíllal mozoghatunk, Enter leütésére pedig megjelenik az adott menühöz tartozó tartalom. Menün belüli navigálás:

Részletesebben

A programozás alapjai 1 Rekurzió

A programozás alapjai 1 Rekurzió A programozás alapjai Rekurzió. előadás Híradástechnikai Tanszék - preorder (gyökér bal gyerek jobb gyerek) mentés - visszaállítás - inorder (bal gyerek gyökér jobb gyerek) rendezés 4 5 6 4 6 7 5 7 - posztorder

Részletesebben

A nyomtatókkal kapcsolatos beállításokat a Vezérlőpulton, a Nyomtatók mappában végezhetjük el. Nyomtató telepítését a Nyomtató hozzáadása ikonra

A nyomtatókkal kapcsolatos beállításokat a Vezérlőpulton, a Nyomtatók mappában végezhetjük el. Nyomtató telepítését a Nyomtató hozzáadása ikonra Nyomtató telepítése A nyomtatókkal kapcsolatos beállításokat a Vezérlőpulton, a Nyomtatók mappában végezhetjük el. Nyomtató telepítését a Nyomtató hozzáadása ikonra duplán kattintva kezdeményezhetjük.

Részletesebben

Budapesti Műszaki- és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar MIT. Nagyteljesítményű mikrovezérlők tantárgy [vimim342]

Budapesti Műszaki- és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar MIT. Nagyteljesítményű mikrovezérlők tantárgy [vimim342] Budapesti Műszaki- és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar MIT Nagyteljesítményű mikrovezérlők tantárgy [vimim342] 8x8x8 LED Cube Készítette: Szikra István URLJRN Tartalomjegyzék

Részletesebben

ARM Cortex magú mikrovezérlők

ARM Cortex magú mikrovezérlők ARM Cortex magú mikrovezérlők 6. NVIC Scherer Balázs Budapest University of Technology and Economics Department of Measurement and Information Systems BME-MIT 2017 ARM7, ARM9 megszakítás kezelés ARM7,

Részletesebben

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

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double Programozás alapjai C nyelv 4. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.10.10.. -1- Mit tudunk már? Típus fogalma char, int, float,

Részletesebben

MSP430 programozás Energia környezetben. Az első lépések

MSP430 programozás Energia környezetben. Az első lépések MSP430 programozás Energia környezetben Az első lépések Előfeltételek Előfeltételek Alapszíntű C programozási ismeretek (Kernighan és Ritchie könyv) A C könyvtárak és fejléc állományok használatának alapszintű

Részletesebben

Új Nemzedék Központ. EFOP pályázatok online beszámoló felülete. Felhasználói útmutató

Új Nemzedék Központ. EFOP pályázatok online beszámoló felülete. Felhasználói útmutató Új Nemzedék Központ EFOP pályázatok online beszámoló felülete Felhasználói útmutató Tartalom 1. Bejelentkezés... 2 1.1. Első bejelentkezés... 2 1.2. Elfelejtett jelszó... 3 2. Saját adatok... 4 3. Dokumentumok...

Részletesebben

Moduláris USB billentyűzet emulátor

Moduláris USB billentyűzet emulátor Moduláris USB billentyűzet emulátor Használati és programozási leírás 2016. április Ismertető A modul alkalmas általános célú HID eszközként a számítógéphez csatlakoztatva szabványos billentyűzet emulációjára.

Részletesebben

INFORMATIKA javítókulcs 2016

INFORMATIKA javítókulcs 2016 INFORMATIKA javítókulcs 2016 ELMÉLETI TÉTEL: Járd körbe a tömb fogalmát (Pascal vagy C/C++): definíció, egy-, két-, több-dimenziós tömbök, kezdőértékadás definíciókor, tömb típusú paraméterek átadása alprogramoknak.

Részletesebben

Levelező kliensek beállítása

Levelező kliensek beállítása Levelező kliensek beállítása Tartalomjegyzék Tartalomjegyzék...1 Bevezető...1 Eléréshez szükséges adatok...1 Mozilla Thunderbird beállítása...2 Microsoft Outlook 2013 beállítása...7 Bevezető A SinusLink

Részletesebben

Architektúra, megszakítási rendszerek

Architektúra, megszakítási rendszerek Architektúra, megszakítási ek Mirıl lesz szó? Megszakítás fogalma Megszakítás folyamata Többszintű megszakítási ek Koschek Vilmos Példa: Intel Pentium vkoschek@vonalkodhu Koschek Vilmos Fogalom A számítógép

Részletesebben

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?

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? Bevezetés 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 Forráskód Hibajegyzék p2p.wrox.com xiii xiii xiv xiv xvi xvii xviii

Részletesebben

Labor gyakorlat Mikrovezérlők

Labor gyakorlat Mikrovezérlők 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

Részletesebben

Yottacontrol I/O modulok beállítási segédlet

Yottacontrol I/O modulok beállítási segédlet Yottacontrol I/O modulok beállítási segédlet : +36 1 236 0427 +36 1 236 0428 Fax: +36 1 236 0430 www.dialcomp.hu dial@dialcomp.hu 1131 Budapest, Kámfor u.31. 1558 Budapest, Pf. 7 Tartalomjegyzék Bevezető...

Részletesebben

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

A LOGSYS GUI. Fehér Béla Raikovich Tamás, Laczkó Péter BME MIT FPGA laboratórium BUDAPESTI MŐSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK A LOGSYS GUI Fehér Béla Raikovich Tamás, Laczkó Péter BME MIT atórium

Részletesebben

1) Kontírozás megkezdését megelőző lépések a Készlet modulban. A kontírozást a Készlet a főkönyvnek egy menüpont futtatásával adja át:

1) Kontírozás megkezdését megelőző lépések a Készlet modulban. A kontírozást a Készlet a főkönyvnek egy menüpont futtatásával adja át: 1) Kontírozás megkezdését megelőző lépések a Készlet modulban 1.1 Bizonylat ellenőrzés és automatikus kontírozás A 2014 évi számviteli változások miatt a Készlet programban is szükségessé válik a kontírozás,

Részletesebben

Minőségellenőrzési kérdőív kitöltő program Felhasználói kézikönyv

Minőségellenőrzési kérdőív kitöltő program Felhasználói kézikönyv Minőségellenőrzési kérdőív kitöltő program Felhasználói kézikönyv Magyar Könyvvizsgálói Kamara 2010. augusztus 18. Tartalom A program főablaka... 3 A fejléc, a felső menüsor valamint az eszköztár... 4

Részletesebben

A C programozási nyelv I. Bevezetés

A C programozási nyelv I. Bevezetés A C programozási nyelv I. Bevezetés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv I. (bevezetés) CBEV1 / 1 A C nyelv története Dennis M. Ritchie AT&T Lab., 1972 rendszerprogramozás,

Részletesebben

A Windows 7 operációs rendszerrel kompatibilis DS150E felhasználói útmutatója. Dangerfield,február 2010 V1.0 Delphi PSS

A Windows 7 operációs rendszerrel kompatibilis DS150E felhasználói útmutatója. Dangerfield,február 2010 V1.0 Delphi PSS A Windows 7 operációs rendszerrel kompatibilis DS150E felhasználói útmutatója Dangerfield,február 2010 V1.0 Delphi PSS 1 TARTALOM Főalkatrészek. 3 Telepítési útmutató...5 A Bluetooth telepítése....17 A

Részletesebben

Labor 2 Mikrovezérlők

Labor 2 Mikrovezérlők Labor 2 Mikrovezérlők ATMEL AVR - ARDUINO BUDAI TAMÁS 2015. 09. 06. 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

Részletesebben

QGIS tanfolyam (ver.2.0)

QGIS tanfolyam (ver.2.0) QGIS tanfolyam (ver.2.0) I. Rétegkezelés, stílusbeállítás 2014. január-február Összeállította: Bércesné Mocskonyi Zsófia Duna-Ipoly Nemzeti Park Igazgatóság A QGIS a legnépszerűbb nyílt forráskódú asztali

Részletesebben

3. A DIGILENT BASYS 2 FEJLESZTŐLAP LEÍRÁSA

3. A DIGILENT BASYS 2 FEJLESZTŐLAP LEÍRÁSA 3. A DIGILENT BASYS 2 FEJLESZTŐLAP LEÍRÁSA Az FPGA tervezésben való jártasság megszerzésének célszerű módja, hogy gyári fejlesztőlapot alkalmazzunk. Ezek kiválóan alkalmasak tanulásra, de egyes ipari tervezésekhez

Részletesebben

SZÁMÍTÓGÉP ARCHITEKTÚRÁK

SZÁMÍTÓGÉP ARCHITEKTÚRÁK SZÁMÍTÓGÉP ARCHITEKTÚRÁK Kártyás ajtónyitó tervezése Horváth Gábor BME Hálózati Rendszerek és Szolgáltatások Tanszék ghorvath@hit.bme.hu, belso@hit.bme.hu Budapest, 2018-02-19 Hálózati Rendszerek és Szolgáltatások

Részletesebben

Pénzintézetek jelentése a pénzforgalmi jelzőszám változásáról

Pénzintézetek jelentése a pénzforgalmi jelzőszám változásáról Pénzintézetek jelentése a pénzforgalmi jelzőszám változásáról Felhasználói Segédlet MICROSEC Kft. 1022 Budapest, Marczibányi tér 9. telefon: (1)438-6310 2002. május 4. Tartalom Jelentés készítése...3 Új

Részletesebben

Felhasználói kézikönyv

Felhasználói kézikönyv Felhasználói kézikönyv Titkositott.email - MS Outlook levelező www.titkositott.email 2 Bevezető MS Outlook levelező beállítása A felhasználói kézikönyv abban segít, hogy a titkositott.email weboldalon

Részletesebben

3. Osztályok II. Programozás II

3. Osztályok II. Programozás II 3. Osztályok II. Programozás II Bevezető feladat Írj egy Nevsor osztályt, amely legfeljebb adott mennyiségű nevet képes eltárolni. A maximálisan tárolható nevek számát a konstruktorban adjuk meg. Az osztályt

Részletesebben

Szoftvertechnolo gia gyakorlat

Szoftvertechnolo gia gyakorlat Szoftvertechnolo gia gyakorlat Dr. Johanyák Zsolt Csaba http://johanyak.hu 1. Dependency Injection (függőség befecskendezés) tervezési minta A tervezési minta alapgondolata az, hogy egy konkrét feladatot

Részletesebben

Johanyák Zsolt Csaba: Ugráló gomb oktatási segédlet Copyright 2008 Johanyák Zsolt Csaba

Johanyák Zsolt Csaba: Ugráló gomb oktatási segédlet    Copyright 2008 Johanyák Zsolt Csaba Ugráló gomb Készítsünk egy egyszerű játékprogramot, ami egy mozgó nyomógombot tartalmaz. A nyomógomb beállított ideig marad egy helyben, majd az ablakon számára elhatárolt terület (panel) egy véletlenszerűen

Részletesebben

Számítógép architektúrák

Számítógép architektúrák Számítógép architektúrák Kártyás ajtónyitó tervezése 2016. március 7. Budapest Horváth Gábor docens BME Hálózati Rendszerek és Szolgáltatások Tanszék ghorvath@hit.bme.hu Számítógép Architektúrák Horváth

Részletesebben

Digitális technika (VIMIAA02) Laboratórium 1

Digitális technika (VIMIAA02) Laboratórium 1 BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika (VIMIAA02) Laboratórium 1 Fehér Béla Raikovich Tamás,

Részletesebben

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

C programozás. 6 óra Függvények, függvényszerű makrók, globális és C programozás 6 óra Függvények, függvényszerű makrók, globális és lokális változók 1.Azonosítók A program bizonyos összetevőire névvel (azonosító) hivatkozunk Első karakter: _ vagy betű (csak ez lehet,

Részletesebben

_INVHU000_WriteReadParameter.cxf Frekvenciaváltók

_INVHU000_WriteReadParameter.cxf Frekvenciaváltók INV-HU-000 A FB feladata A dokumentáció tartalma Szimbólum A CP1H vagy a CP1L PLC és frekvenciaváltó(k) automatikus kommunikációja: _INVHU000_WriteReadParameter A frekvenciaváltó üzemi paramétereinek írása,

Részletesebben

A webáruház kezdőlapján háromféle diavetítés beállítására van lehetőség:

A webáruház kezdőlapján háromféle diavetítés beállítására van lehetőség: KRYPTON sablon Részletes leírás a sablonhoz kapcsoló új beállításokról Diavetítés a kezdőlapon A webáruház kezdőlapján háromféle diavetítés beállítására van lehetőség: Képes diavetítés Termékes diavetítés

Részletesebben

3. Ezután a jobb oldali képernyő részen megjelenik az adatbázistábla, melynek először a rövid nevét adjuk meg, pl.: demo_tabla

3. Ezután a jobb oldali képernyő részen megjelenik az adatbázistábla, melynek először a rövid nevét adjuk meg, pl.: demo_tabla 1. Az adatbázistábla létrehozása a, Ha még nem hoztunk létre egy adatbázistáblát sem, akkor a jobb egérrel a DDIC-objekt. könyvtárra kattintva, majd a Létrehozás és az Adatbázistábla menüpontokat választva

Részletesebben

ConnectAlarm alkalmazás Központ/modul programozási segédlet V1.2 TL280 (R) v.4.x modulokhoz

ConnectAlarm alkalmazás Központ/modul programozási segédlet V1.2 TL280 (R) v.4.x modulokhoz TL280(R) ConnectAlarm alkalmazás Központ/modul programozási segédlet V1.2 TL280 (R) v.4.x modulokhoz Jelen leírás csak a DSC NEO központok és TL280(R) kommunikátor beállításait tartalmazza a ConnectAlarm

Részletesebben