Beágyazott és Ambiens Rendszerek 4. gyakorlat tematikája
|
|
- Enikő Szekeres
- 5 évvel ezelőtt
- Látták:
Á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 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észletesebbenProgramozá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észletesebbenAz 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észletesebbenAz 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észletesebbenMintavé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észletesebbenAz 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észletesebbenAz 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észletesebbenC 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észletesebbenT 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észletesebbenHORVÁ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észletesebbenProgramozá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észletesebbenA 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észletesebbenJá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észletesebbenloop() 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észletesebbenMechatronika é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észletesebbenT 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észletesebbenI. 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észletesebbenIngyenes 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észletesebbenMintavé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észletesebbenFELHASZNÁ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észletesebbenA 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észletesebbenLabor 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észletesebbenMikrorendszerek 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észletesebbenKö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észletesebben9.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észletesebbenC++ 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észletesebbenProgramozá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észletesebbenC 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észletesebben4. 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észletesebbenProgramozá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észletesebbenBeá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észletesebbenPerifé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észletesebbenA 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észletesebbenDr. 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észletesebbenAz 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észletesebbenKARAKTERFELISMERÉ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 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észletesebbenBeá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észletesebben10. 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észletesebbenMé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észletesebbenMSP430 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észletesebbenLabor 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észletesebben16F628A 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észletesebbenEDInet 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észletesebbenDigitá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észletesebbenMechatronika é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észletesebbenSZÁ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észletesebbenKameleon 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észletesebbenVá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észletesebbenProgramozá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észletesebbenVARIO 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észletesebbenVBA 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észletesebbenBASH 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észletesebbenHVK 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észletesebbenJá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észletesebbenKé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észletesebbenDigitá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észletesebbenProgramozá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észletesebbenProgramozá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észletesebbenSysCVideo: 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észletesebbenTartalom 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észletesebbenMPLAB 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észletesebbenC++ 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észletesebbenA 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észletesebbenA 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észletesebbenA 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észletesebbenA 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észletesebbenBudapesti 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észletesebbenARM 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észletesebbenProgramozá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észletesebbenMSP430 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ó Tartalom 1. Bejelentkezés... 2 1.1. Első bejelentkezés... 2 1.2. Elfelejtett jelszó... 3 2. Saját adatok... 4 3. Dokumentumok...
RészletesebbenModulá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észletesebbenINFORMATIKA 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észletesebbenLevelező 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észletesebbenArchitektú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észletesebbenKinek 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észletesebbenLabor 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észletesebbenYottacontrol 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észletesebbenA 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észletesebben1) 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észletesebbenMinő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észletesebbenA 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észletesebbenA 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észletesebbenLabor 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észletesebbenQGIS 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észletesebben3. 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észletesebbenSZÁ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észletesebbenPé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észletesebbenFelhaszná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észletesebben3. 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észletesebbenSzoftvertechnolo 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észletesebbenJohanyá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észletesebbenSzá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észletesebbenDigitá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észletesebbenC 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
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észletesebbenA 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észletesebben3. 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észletesebbenConnectAlarm 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