Fórum témák
» Több friss téma |
Cikkek » Nulláról a robotokig - PIC Mikrovezérlők III rész Nulláról a robotokig - PIC Mikrovezérlők III rész
Szerző: Topi, idő: Júl 13, 2007, Olvasva: 51473, Oldal olvasási idő: kb. 2 perc
A megszakítások a processzor technológiának az alapja. Megszakításkor a processzor felhagy addigi tevékenységével, végrehajtja a megszakítást, majd onnan folytatja ahol abbahagyta. Azt, hogy hol hagyta abba, még tudja magától. De hogy mik voltak a regiszter értékek, már nem. C nyelv esetén nem kell törődnünk a regiszter lementésekkel, mert ezt megoldja a fordító, de Assemblyben sajnos nekünk kell elmenteni mindent. Ilyen feltétlen elmentendő regiszterek a Work, Status és egyéb más, majdnem minden utasítás által használt regiszter. Nézzük a megszakítás folyamatát, most egy Timerre vagyis időzítőre, ami mondjuk másodpercenként fut le. Vagyis minden másodpercben megszakad a program végrehajtás, meghívja a timert majd folytatja.
A 4. és a 8. lépés nagyon fontos. Gondoljunk bele, hogy épp XOR-oltunk két számot, hogy megnézzük egyenlőek-e. XOR-olás végetért, és a STATUS regiszter Zero bitje 1-et, jelezve nekünk hogy tényleg egyenlőek. Igenám, de mielőtt a főprogramban megnézhetnénk, hogy Zero-e, még előtte esik be pont az interrupt és a másodperc növelgetéssel máris felülírtuk a STATUS regisztert, és mikor végre visszatértünk a programhoz és vizsgálnánk a STATUS-t, már rég nem az van benne...
Mint mondtam, a megszakítás a processzoroknál nagyon fontos szerepet tölt be. Először is, nagy terhet vesz le a "lábáról", mivel nem kell állandóan vizsgálni ("megnyomták-e a gombot"). Ezzel értékes processzor időt spórolunk meg. A CISC és RISC processzoroknál, főleg a régebbieknél maga a processzor is működhetett hibásan, nem csak az operációs rendszer. És néha bizony végtelen ciklusokra futott. Most is minden lefagyás végtelen ciklusok miatt van. Ha bekeveredtünk egy ilyenbe, akkor megmozdítottuk az egeret, küldünk a processzornak egy megszakítási kérelmet, felfüggesztette a végtelen ciklus "végrehajtását" lekezelte az egeret, és jóesetben élve tért vissza a folyamathoz. Mostani PC-knél még a régi szakik ugyanúgy rángatják a kurzort és nyomkodják a billentyűt ezernyi megszakítást előidézve, hátha visszatér az élet a processzorba, és nem veszik el több órai munkájuk Nézzük először a legegyszerűbb interruptot (megszakítást) ami a PIC-nek az RB0/INT lábán van. Ez egy fel és lefutó élre triggerelhető hardveres megszakítási láb. De hogy mi is ez? Lapozz... A cikk még nem ért véget, lapozz! Értékeléshez bejelentkezés szükséges! |
Bejelentkezés
Hirdetés |