Mérés Labor II. Ellenőrző mérés gyakorlat

A VIK Wikiből

Ez az oldal a korábbi SCH wikiről lett áthozva.

Ha úgy érzed, hogy bármilyen formázási vagy tartalmi probléma van vele, akkor, kérlek, javíts rajta egy rövid szerkesztéssel!

Ha nem tudod, hogyan indulj el, olvasd el a migrálási útmutatót.


Aki valamit tud, az ne habozzon kitölteni. Előtte akár utána is nézhet, hogy tényleg jó-e, amit gondol. ;)

%TOC{depth="2"}%


Megjegyzések a gyakorlati feladatokhoz:

  • Az ellenőrző mérés gyakorlati részén ilyen vagy ehhez hasonló feladatokat kapnak a hallgatók. A feladatok nehézsége nem teljesen egyforma, ezeket az eltéréseket a mérésvezetők az osztályzat megállapításánál igyekeznek figyelembe venni.
  • Az 1. mérés speciális részei (pl. hogyan kell egye ellenállást bekötni a breadboardon) technikai okokból nem szerepelnek a gyakorlati feladatok közt, de az ott gyakorolt mérési eszközök, módszerek más mérésekben is szerepeltek, és azokkal kapcsolatban "előkerülnek". Az írásbeli részen számítani lehet az 1. méréshez kapcsolódó kérdésre.
  • A 2-3. méréshez kapcsolódó feladatok esetében mindjárt az elején célszerű tisztázni az esetleg nem egyértelműnek tűnő feladatokat, lehetőségeket. (Pl. az egyszerűség kedvéért tekinthető-e pergésmentesnek a nyomógomb vagy kapcsoló.) Az első megjegyzésben szereplő "ehhez hasonló" elsősorban itt fog előfordulni: pl. lehet, hogy valamilyen értéket nem a LED soron kell kijelezni, hanem az LCD kijelzőn, de ebben az esetben kérhető egy LCD kezelő rutin.


1. A D/A átalakító erősítési hibája és beállása

Mérje meg a D/A átalakító erősítési hibáját! A hibát százalékban adja meg, és hasonlítsa össze az adatlap adataival. (A tesztpanelen a "VREF Range", "Output buffer enabled" van beállítva, a VREF névleges értéke +2,5 V.)
Nézze meg oszcilloszkópon a D/A átalakító beállását, a dac_gui alkalmazással beállítható legnagyobb amplitúdójú pozitív irányú ugrás esetén. Becsülje meg a beállási időt!

Megoldás

Erősítési hiba: (Vmax-V0)/(2.5V-1LSB), ahol a Vmax és V0 a maximum és minimum értékeknél mért feszültétség. LSB = FS/2n, ahol FS a maximum értékhez tartozó feszültség, n pedig a bitek száma (jelenleg 12). Beállási idő: a dac_gui-nál Square Wave-t kell beállítani. A beállás pedig a 0-ról 2.5V-ra történő beállás ideje, ahol 1LSB-s eltéréstől mérünk.

2. D/A átalakító integrális linearitási hibájának meghatározása

Mérje meg a D/A átalakító kimenő feszültségét a tartományon belül nagyjából egyenletesen elosztott 10 pontban, a jeltartomány két szélső pontját is belevéve. A mért feszültségeket közvetlenül elektronikusan vigye át egy Excel táblába! A linearitási hiba számítását az Excel tábla segítségével végezze!
Az integrális linearitási hiba értékét LSB-ben adja meg! Értékelje is az eredményt!

Megoldás

Excel tábla felosztva 10 részre, a mért és a számított (lineáris) feszültség különbsége osztva 0.0006-tal (=1LSB) adja az eltérést FSB-ben. Értékelni az adatlap alapján.

3. D/A átalakító differenciális linearitási hibájának meghatározása és glitch vizsgálata

Mérje meg a D/A átalakító differenciális linearitási hibáját az 1022 – 1026 bemenő jeltartományban! A hiba értékét LSB-ben adja meg!
Az oszcilloszkópon mutasson be egy átváltási tranzienst (glitch), és mérje meg az amplitúdóját a kurzorvonalak segítségével.

Megoldás

Differenciális hiba: Az 1022-tól az 1026-ig való értékek ráadásával miden értéknél meg kell adni a mért feszültséget LSB-ben, és aztán ezek különbségének 1LSB-től való eltérését kell megadni. Glitch: dac_gui "Glitch" funkciója. Ezután oszcilloszkóp, és kész...

4. Az A/D átalakító tulajdonságainak vizsgálata szinuszjellel

A szinuszos mérőjelet az ADC2-es csatornára kell adni. A méréshez a szinuszjel amplitúdóját a mérésvezető által megadott paraméterek szerint állítsa be. (Ha nem kapott ilyen előírást, akkor a jel a 0 - 2,4 V tartományt töltse ki.) A jel ráadása előtt oszcilloszkóppal ellenőrizze, hogy a generátoron beállított jel tényleg nem lépi túl az átalakító jeltartományát, ami 0 .. +2,5 V.
A jel frekvenciáját úgy válassza meg, hogy koherens mintavételezés legyen, és a mintavételezés időtartama a jel periódusidejének k-szorosa legyen. A k értékét a mérésvezető adja meg, a k = 5 érték nem választható. (A k lehet pl. 3, 7, 9, 11 stb.) Az átalakító mintavételi frekvenciája 115200 Hz, és az átalakító 8192 egymás utáni mintát tárol a tesztpanel RAM-jában. Ezekkel az adatokkal a koherens mintavételezéshez szükséges jelfrekvencia már kiszámítható.
Nézze meg az átalakított jelet az időtartományban, és ellenőrizze, hogy a mintavétel tényleg koherens.
Nézze meg az átalakított jel spektrumát! Értékelje a spektrumot, hogy az jellegre megfelel-e az elvártnak. Térjen ki arra is, hogy a spektrumon látszik-e, hogy a mintavétel koherens volt-e. Az értékelés alapjául szolgáló ábrát emelje át a jegyzőkönyvrészletbe, és írja mellé az értékelést.

Megoldás:

A jel frekvenciája: fm=k*115200/8192. Időtartomány: Time-domain mód. Koherens, ha a jobb oldalon a vonal ott ér véget, ahol a bal oldalon levő vonal kezdődik. Spektrum: Frequency-domain mód. Látszik az offset a 0. spektrumvonalnál, és az alapharmonikus, valamint pedig a felharmonikusok.

5. Négyszögjel vizsgálata A/D átalakítóval

Adjon az átalakító bemenetére (ADC2-es csatorna) szimmetrikus (50%) kitöltésű négyszögjelet. A négyszögjel amplitúdóját a mérésvezető által megadott paraméterek szerint állítsa be. (Ha nem kapott ilyen előírást, akkor a jel a 0,4 - 2,0 V tartományt töltse ki.) A jel ráadása előtt oszcilloszkóppal ellenőrizze, hogy a generátoron beállított jel tényleg nem lépi túl az átalakító jeltartományát, ami 0 .. +2,5 V.
A jel frekvenciáját úgy válassza meg, hogy koherens mintavételezés legyen, és a mintavételezés időtartama a jel periódusidejének k-szorosa legyen. A k értékét a mérésvezető adja meg, a k = 5 érték nem választható. (A k lehet pl. 3, 7, 9, 11 stb.) Az átalakító mintavételi frekvenciája 115200 Hz, és az átalakító 8192 egymás utáni mintát tárol tesztpanel RAM-jában. Ezekkel az adatokkal a koherens mintavételezéshez szükséges jelfrekvencia már kiszámítható.
Nézze meg az átalakított jelet az időtartományban, és ellenőrizze, hogy a mintavétel tényleg koherens.
Nézze meg az átalakított jel spektrumát! Értékelje a spektrumot, hogy az megfelel-e az elvártnak. Térjen ki arra is, hogy a spektrumon látszik-e, hogy a kitöltési tényező 50%. Az értékelés alapjául szolgáló ábrát emelje át a jegyzőkönyvrészletbe, és írja mellé az értékelést.

Megoldás

Ugyanaz, mint a 4. feladat, csak most négyszögjel. Értékelés: a páros sorszámú komponensek lényegesen alulmaradnak amplitúdóban a páratlanokkal szemben. Az alakhűség is látszik az időtartományban.

6. Alapsávi digitális jel átvitelének vizsgálata

A szem-ábra felvételéhez adjon egy, a szem-ábra vizsgálatához alkalmas vizsgáló jelet a jelcsatorna bemenetére, és figyelje meg az szem-ábrát a jelcsatorna-modell másik végén! Vegye fel a szemábrát 4800 és 9600 Baud jelváltási sebesség esetén, az ábrákat mentse is át egy jegyzőkönyv-részletbe. Értékelje a kapott szem-ábrákat!
Ellenőrizze, hogy a jelcsatorna-modellen átvitt jelet helyesen veszi-e a PC soros portja 9600 Baud esetén. (A mérésvezető más átviteli sebességet is előírhat.) Vegye is fel a jelcsatorna kimenetén látható jelalakot a mérésvezető által megadott karakter átvitele esetén. A karaktert a klaviatúra megfelelő gombjának leütésével kell ráadni a csatornára. Az oszcilloszkópot úgy kell triggerelni, hogy az minden karakter-jelet kijelezzen a következő karakter érkezéséig, de a kijelzési kép megőrzése nem a STOP gomb megnyomásával történik. Értékelje a kapott jelalakot!

Megoldás

Jel: so_rand2 progival. Az oszcilloszkópon infinite persistence megjelenítési mód. Értékelés: nyitottság. Helyes jel átvitelének ellenőrzése: tvsio program kell. Az oszcilloszkópon a triggernél a ’pattern’-t kell állítani, méghozzá lefutó élre (ugyanis a startbit 0). -- Tompika - 2006.12.06.

7. Vegye fel a jelcsatorna-modell frekvenciamenetét ("amplitúdó-menet"), és határozza meg a felső határfrekvenciát!

A vizsgált frekvenciatartomány legyen 500 Hz - 10 kHz, és elég 10-15 pontban mérni. A frekvenciamenet vizsgálatánál a relatív erősítést mérje meg dB-ben. A mérési eredményeket közvetlenül elektronikusa vigye át egy Excel táblába! Határozza meg a -3dB-es felső határfrekvenciát, és mérje meg ott a fázistolást!
A mérési eredményeket ábrázolja Excel "chart"-ként is a hagyományos Bode-diagram formájában! A diagramon természetesen fel kell tüntetni a tengelyek skálázását és a mértékegységeket is. Amikor a Bode-diagramot átemeli a jegyzőkönyvbe, ne felejtse el a mérési eredményeket tartalmazó táblázatot is átemelni.

Megoldás

500Hz-től 10kHz-ig kell egyenletesen 10-15 pontban mérni. A jel 4 Vp-p, 0 V offszet. Relatív erősítés: a digitális multiméterre először a sávközépi jelet kell ráadni (500Hz, sin). Ezt kell a ’shift + db’ gombbal eltárolni, aztán majd ehhez viszonyítja a többit. Így már a relatív erősítést fogjuk kapni.
Kérdéses: 3dB-es határfrekvencia?

  • addig kell állítgatni (tekergetni) a hullámforma-generátoron a frekvenciát, amíg a multiméteren a -3dB -t nem látod. Ez lesz a határfrekvencia. -- Gabesz - 2005.12.05.

A fázistolást mérhetjük automatikusan (gondolom, mert nem kötötték ki, hogy nem), vagy kézzel: (96/207)*360 [(időeltolódás/kimenet periódusideje)*360]

8. A jelcsatorna-modell erősítésének és határfrekvenciájának vizsgálata

Adjon a jelcsatorna-modell bemenetére 1V effektív értékű, 500 Hz frekvenciájú szinuszjelet. Multiméterrel mérje meg a kimenő és bemenő feszültséget, és számítsa ki az erősítést. Mérje meg a fázistolást is az oszcilloszkóppal, lehetőleg minél pontosabban. A fázistolást nem a Quick_Meas funkcióval kell végezni, hanem a képernyőn mért értékekből kell számítani.
Értékelje is az eredményt! (Mekkora fázistolást vár sávközépen?)
Ezután keresse meg azt a határfrekvenciát, amelyen az erősítés a felére csökken. Az itt mért erősítést számítsa át dB-be.
Számítsa ki az elméleti csatornakapacitást kétállapotú jelek esetére, az előzőkben mért étékek felhasználásával.

Megoldás

A jel le van írva, erősítés a kimenet/bemenet. Ha dB kell akkor átváltani. A fázistolás megmérése számítással: (időeltolódás/kimenet periódusideje)*360
Kérdéses: Ezek után el kell kezdenem lépegetni (különböző frekvenciájú jeleket ráadni) és megnézni mikor lesz az erősítés a fele? Meg aztán a dB nem határozható meg e nélkül? Mert ha fele, akkor Uki/Ube=0.5  20*log0.5=-6.02

  • kiszámoltad az erősítést a fenti módszerrel (legyen mondjuk A). Ekkor addig állítgatod a frekit, amíg az erősítés A/2 lesz (=/=0.5). dB-ben: ahogy fent, csak 0.5 helyett A/2. -- Gabesz - 2005.12.05.

Csatornakapacitás: 2*B*log22 = 2*B = 2*határfrekvencia

11. Bináris számok beolvasása

Írjon egy programot az AVR Experiment kártyára, amely 8 bites bináris számot olvas be a kapcsolósorról, két részletben. A kapcsolókon (SW0 -SW3) beállított értéket jobbról balra növekvő súlyozású 4 bites bináris számként kell kezelni. A 8 bites szám alsó (alacsonyabb súlyozású) része a BT0 nyomógombbal, a felső része a BT1 nyomógombbal vihető be.
A BT1 gomb megnyomása után a bevitt 8 bites szám értéket jelezze ki a LED soron!

===

Ezen a helyen volt linkelve a(z) em11.asm nevű fájl ("em11.asm" link szöveggel) a régi wiki http://wiki-old.sch.bme.hu/bin/view/Infoalap/MeresLabor2EllGy oldaláról. (Ha szükséged lenne a fájlra, akkor a pontos oldalmegnevezéssel együtt küldd el a wiki@sch.bme.hu címre a kérésedet)

=

12. Gombnyomás számláló

Írjon egy programot az AVR Experiment kártyára, amely az INT nyomógomb lenyomására (ill. pergésére) keletkező 1->0 átmeneteket számolja. Az INT nyomógomb változásait megszakítással kezelje. A számláló 4 bites, tartalma a LED soron van kijelezve.
Kiegészítő feladat: A számláló az 1111 érték elérése után nem számol tovább, a számláló egy másik nyomógombbal törölhető.

===

Ezen a helyen volt linkelve a(z) em12.asm nevű fájl ("em12.asm" link szöveggel) a régi wiki http://wiki-old.sch.bme.hu/bin/view/Infoalap/MeresLabor2EllGy oldaláról. (Ha szükséged lenne a fájlra, akkor a pontos oldalmegnevezéssel együtt küldd el a wiki@sch.bme.hu címre a kérésedet)
változott!===
  • bugfix: állapotregiszter mentése/visszaállítása az IT-rutinban

13. LED villogtatás-1

Írjon egy programot az AVR Experiment kártyára, amely kb. másodperces ütemezéssel villogtat egy LED-et. Az időzítést egy timer egységgel végezze.
Egy nyomógomb megnyomása után a LED villogás helyett folyamatosan égjen. Ugyanazon nyomógombot még egyszer megnyomva megint villogjon. A nyomógomb kezelését interrupttal oldja meg.

===

Ezen a helyen volt linkelve a(z) em13.asm nevű fájl ("em13.asm" link szöveggel) a régi wiki http://wiki-old.sch.bme.hu/bin/view/Infoalap/MeresLabor2EllGy oldaláról. (Ha szükséged lenne a fájlra, akkor a pontos oldalmegnevezéssel együtt küldd el a wiki@sch.bme.hu címre a kérésedet)

=

14. LED villogtatás-2

Írjon egy programot az AVR Experiment kártyára, amely kb. másodperces ütemezéssel villogtat egy LED-et. Az időzítést egy SW időzítő rutinnal végezze.
Egy nyomógomb megnyomása után a LED villogás helyett folyamatosan égjen. Ugyanazon nyomógombot még egyszer megnyomva megint villogjon. A nyomógomb kezelését interrupttal oldja meg.

===

Ezen a helyen volt linkelve a(z) led_vill_02.asm nevű fájl ("led_vill_02.asm" link szöveggel) a régi wiki http://wiki-old.sch.bme.hu/bin/view/Infoalap/MeresLabor2EllGy oldaláról. (Ha szükséged lenne a fájlra, akkor a pontos oldalmegnevezéssel együtt küldd el a wiki@sch.bme.hu címre a kérésedet)

=

15. Gombnyomás-emlékező

Írjon egy programot az AVR Experiment kártyára, amely emlékezik a gombok megnyomási sorrendjére. A BT0, BT1, BT2 nyomógombhoz rendre a LED1, LED2, LED3 világító dióda tartozik. A gomb megnyomása esetén a hozzá rendelt LED világít. Egyidejűleg tárolásra kerül a gombnyomás eseménye. Alapállapot után a felhasználó legfeljebb 8 gombnyomást végezhet. A felhasználó egyszerre csak 1 gombot tarthat lenyomva.
Az IT gomb lenyomása után kb. 0.5 sec ütemezéssel a kártya visszajátssza a lenyomott gombokat. (Ehhez kérhető kész időzítő rutin, ha a megoldás túl lassan készül.)

===

Ezen a helyen volt linkelve a(z) gombnyomas_emlekezo.asm nevű fájl ("gombnyomas_emlekezeo.asm" link szöveggel) a régi wiki http://wiki-old.sch.bme.hu/bin/view/Infoalap/MeresLabor2EllGy oldaláról. (Ha szükséged lenne a fájlra, akkor a pontos oldalmegnevezéssel együtt küldd el a wiki@sch.bme.hu címre a kérésedet)

=

A fenti verziót nem tudtam szimulálni, mert a .inc fájl miatt az AVR Studio nem engedte felüldefiniálni a 25-nél nagyobb ill. 16-nál kisebb regisztereket, így ez a megoldás kevesebb regisztert használ: (A státuszregiszterrel nem törődtem, mo: lásd. 19. feladat)

===

Ezen a helyen volt linkelve a(z) em15.asm nevű fájl ("em15.asm" link szöveggel) a régi wiki http://wiki-old.sch.bme.hu/bin/view/Infoalap/MeresLabor2EllGy oldaláról. (Ha szükséged lenne a fájlra, akkor a pontos oldalmegnevezéssel együtt küldd el a wiki@sch.bme.hu címre a kérésedet)

=

16. Összeadó készítése

Írjon egy programot az AVR Experiment kártyára, amely egy összeadót valósít meg. Az összeadó 4 bites, előjel nélküli bináris kódolású operandusokkal dolgozik.
A számokat az SW0..3 kapcsolókon kell beállítani. Az IT gomb első megnyomásának hatására a szám betöltődik a 8 bites eredményregiszterbe. Az eredményregiszter tartalmát a LED0..7 jelzi ki. Az IT gomb második megnyomása beviszi a kapcsolókon beállított második operandust, és rögtön hozzáadja az eredményregiszter tartalmához. Az IT gomb harmadik megnyomása törli az eredményregisztert és alapállapotba viszi vissza az összeadót.

===

Ezen a helyen volt linkelve a(z) osszeado.asm nevű fájl ("osszeado.asm" link szöveggel) a régi wiki http://wiki-old.sch.bme.hu/bin/view/Infoalap/MeresLabor2EllGy oldaláról. (Ha szükséged lenne a fájlra, akkor a pontos oldalmegnevezéssel együtt küldd el a wiki@sch.bme.hu címre a kérésedet)

=

17. Összeadó/kivonó készítése

Írjon egy programot az AVR Experiment kártyára, amely egy összeadó/kivonó egységet valósít meg. Az egység 4 bites 2-es komplemens kódolású operandusokkal dolgozik.
A számokat az SW0..3 kapcsolókon kell beállítani. Az BT0 gomb megnyomásának hatására a szám betöltődik az eredményregiszterbe. Ezután kell a kapcsolókon beállítani a második operandust. Ha ezután a felhasználó a BT1 gombot nyomja meg, akkor a számot hozzáadja az eredményregiszterhez, ha pedig a BT2 gombot nyomja meg, kivonja a számot az eredményregiszter tartalmából. Az eredmény-regiszter hosszát, a carry kezelését a hallgató választja meg. Az eredményregiszter tartalmát a LED0..7 jelzi ki.

Megoldás:

===

Ezen a helyen volt linkelve a(z) em17.asm nevű fájl ("em17.asm" link szöveggel) a régi wiki http://wiki-old.sch.bme.hu/bin/view/Infoalap/MeresLabor2EllGy oldaláról. (Ha szükséged lenne a fájlra, akkor a pontos oldalmegnevezéssel együtt küldd el a wiki@sch.bme.hu címre a kérésedet)

=

18. LED-léptetés

Írjon egy programot az AVR Experiment kártyára, amely gombnyomásra lépteti a "fényt" a LED-soron. Bekapcsolás után a program gyújtsa ki a LED4 diódát, a többi ne világítson. A világító LED-pozíció a BT0 és BT2 nyomógombok segítségével léptethető, BT0-val az egyik irányba, BT2-vel a másikba. Minden gombnyomás 1 pozíciónyit léptet az adott irányba. Ha a léptetés során elértük a szélsõ helyzetet, akkor ne lehessen "kiléptetni" a világító LED-et.

===

Ezen a helyen volt linkelve a(z) em18.asm nevű fájl ("em18.asm" link szöveggel) a régi wiki http://wiki-old.sch.bme.hu/bin/view/Infoalap/MeresLabor2EllGy oldaláról. (Ha szükséged lenne a fájlra, akkor a pontos oldalmegnevezéssel együtt küldd el a wiki@sch.bme.hu címre a kérésedet)

=

19. Kódfigyelő

Írjon egy programot az AVR Experiment kártyára, amely a gombok megnyomási sorrendjét figyeli. Az SW0...3 kapcsolók egy bináris kódot adnak meg. Ezt a kódot kell bebillentyűzni a BT0 és BT1 nyomógombokkal, amikor is a BT0jelzi a 0 értéket, BT1 pedig az 1 értéket. Ha a kódot sikerül helyesen beütnünk, akkor a LED0 kigyullad, egészen a következő gombnyomásig. Amíg a kódot nem ütjük be, a LED0 nem világít.
Egy példa az értelmezésre:
Kapcsolóállás: SW0=1 SW1=0 SW2=0 SW3=1
Beütendő szekvencia: BT1, BT0 BT0 BT1

Megoldás

===

Ezen a helyen volt linkelve a(z) em19.asm nevű fájl ("em19.asm" link szöveggel) a régi wiki http://wiki-old.sch.bme.hu/bin/view/Infoalap/MeresLabor2EllGy oldaláról. (Ha szükséged lenne a fájlra, akkor a pontos oldalmegnevezéssel együtt küldd el a wiki@sch.bme.hu címre a kérésedet)

=

A státuszregisztert lusta voltam elmenteni, de nyilván (IT kezelő rutin elején) in temp, SREG ; push temp ; (IT kezelő rutin végén - reti előtt) pop temp ; out SREG, temp ; menthető minden IT rutinban!

20. Dobókocka

Írjon egy programot az AVR Experiment kártyára, mely egy dobókockát szimulál. A "dobás" a BT2 gombbal történik. A gomb minden egyes megnyomására 1 - 6 darab LED gyullad ki a LEDsoron, a világító LED-ek száma véletlenszerű. (Tipp a véletlenszám előállításához: ha pl. egy számláló az emberi akciókhoz képest nagy sebességgel számol, akkor a gomb megnyomása biztos nem lehet szinkronban a számlálóval, a számlálónak a gomb megnyomása pillanatában aktuális értéke véletlenszerűnek tekinthető.)

===

Ezen a helyen volt linkelve a(z) dobokocka.asm nevű fájl ("dobokocka.asm" link szöveggel) a régi wiki http://wiki-old.sch.bme.hu/bin/view/Infoalap/MeresLabor2EllGy oldaláról. (Ha szükséged lenne a fájlra, akkor a pontos oldalmegnevezéssel együtt küldd el a wiki@sch.bme.hu címre a kérésedet)

=

interrupt nélkül, a pergésnél mindig újabb eredmény keletkezik, de az is ugyanannyira véletlen mint az első.

-- Đani - 2005.12.03. -- Peti - 2006.12.06.

  • Ezen a helyen volt linkelve a(z) Meres2GyakPeldak.zip nevű fájl ("Meres2GyakPeldak.zip" link szöveggel) a régi wiki http://wiki-old.sch.bme.hu/bin/view/Infoalap/MeresLabor2EllGy oldaláról. (Ha szükséged lenne a fájlra, akkor a pontos oldalmegnevezéssel együtt küldd el a wiki@sch.bme.hu címre a kérésedet)
Megcsináltam én is az assembly példákat, hiba - tévedés joga fenntartva, persze minden javítást szívesen veszek :)