 |
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
pegla Član


Pridružen-a: Sob 01 Nov 2003 17:32 Prispevkov: 284 Aktiv.: 1.20 Kraj: Sv.Anton
|
Objavljeno: Pon Feb 12, 2007 10:21 pm Naslov sporočila: Prekinitve |
|
|
Imam za večino zelo bedasto uprašanje.
Kdaj se odločiš za prekinitev v programu in zakaj?
Kot začetnik na področju programiranja PIC-ov na odgovor si ne vem odgovoriti.
Do sedaj prekinitev nisem uporabljal čeprav sem naredil kakih 30 programčkov
delujočih med mjimi tudi par okoli 1000 vrstic.
Precej sem pregledal tudi forum in nekaj literature pa nisen mogel izbrati iz teksta,
ki so napisana.
L.P.Pegla |
|
Nazaj na vrh |
|
 |
cero Član



Pridružen-a: Čet 31 Jul 2003 17:37 Prispevkov: 1179 Aktiv.: 4.98 Kraj: vipava
|
Objavljeno: Pon Feb 12, 2007 10:49 pm Naslov sporočila: |
|
|
Hm recimo imaš operacijski sistem na računalniku kateri se izvaja.Ko premakneš miško,se program prekine,izvajati pa se začne prekinitveni program. Ta beleži kam se miška premika in tja premika tudi kurzor na zaslonu.Ko se miška ustavi se tudi ta prekinitveni program ustavi in se izvajanje operacijskega sistema nadaljuje tam kjer je bilo prekinjeno. |
|
Nazaj na vrh |
|
 |
Silvo Moderator


 
Pridružen-a: Pon 24 Feb 2003 17:09 Prispevkov: 14673 Aktiv.: 61.94 Kraj: Koroška-okolica Dravograda
|
Objavljeno: Pon Feb 12, 2007 11:11 pm Naslov sporočila: Re: Prekinitve |
|
|
pegla je napisal/a: |
Imam za večino zelo bedasto uprašanje.
Kdaj se odločiš za prekinitev v programu in zakaj?
Kot začetnik na področju programiranja PIC-ov na odgovor si ne vem odgovoriti.
Do sedaj prekinitev nisem uporabljal čeprav sem naredil kakih 30 programčkov
delujočih med mjimi tudi par okoli 1000 vrstic.
Precej sem pregledal tudi forum in nekaj literature pa nisen mogel izbrati iz teksta,
ki so napisana.
L.P.Pegla |
O prekinitvah je na forumu bilo že dosti napisanega. (o PIC-u sem sam dosti pisal) Uporabi iskanje.
Čisto na kratko kako je pri picih:
Pri večina pic-ih je reset vektor na lokaciji 0x0 Od tam tudi začnemo izvajati glavni program. Prekinitveni vektor pa je na lokaciji 0x04
Kaj pravzaprav prekininitev je:
Kot že samo ime pove "nekaj" se prekine. Torej v primeru da imamo vključeno določeno prekinitev se izvede sledeče: Izvajanje določenega programa se prekine. V sklad se shrane trenutni programski števec. Program se postavi na prekinitveni vektor 0x04. Običajno imamo tam napisan skok "GOTO" na prekinitveno rutino kjer ugotovavljamo vrsto prekinitve, če seveda imamo vključenih več prekinitev.
Pred tem je pametno shraniti W ter STATUS register v nek register, ki je dostopnen na vseh bankah. Prekinitvena rutina se zaključi z RETFIE. Pred tem je dobro vrniti shranjene vrednosti STATUS ter W registra. Po RETFIE se iz sklada se vrne PC (program se nadaljuje od mesta kjer je bil prekinjen)
Toliko na kratko. Sicer so prekinitve zelo lepo opisane v datashetih posameznega mikrokontrolerja. _________________ lp
Silvo |
|
Nazaj na vrh |
|
 |
int47 Član


Pridružen-a: Pon 15 Dec 2003 0:10 Prispevkov: 2104 Aktiv.: 8.88 Kraj: Ljubljana
|
Objavljeno: Tor Feb 13, 2007 12:03 am Naslov sporočila: |
|
|
Prekinitve so za uC podobno kot je telefonski ali hišni zvonec zate.
Recimo, da si doma in pričakuješ obisk.
-Če nimaš nič bolj pametnega za početi, lahko čakaš pred vrati. Vendar dokler obisk ne pride, ne moreš početi nič drugega.
-Če moraš med čakanjem na obisk še npr. pomiti posodo, lahko vsakič, preden v roke vzameš nov kos posode preveriš, če je kdo pred vrati. Če je to preverjanje redko tvegaš, da se bo obisk naveličal čakati in odšel. Če preverjaš prepogosto, si občutno podaljšal čas pomivanja posode.
-Najboljša rešitev je, če obiskovalec pritisne na zvonec (sproži prekinitev).
Prekinitev ti zagotavlja dosti bolj definiran odzivni čas in ne troši procesorjevega časa za nepotrebna preverjanja.
Prekinitev lahko spoži zunanji dogodek (prejet znak po RS232, sprememba stanja na pinu), ali procesor sam (prelitje časovnika, končan vpis v EEPROM, iztek WDT periode...). |
|
Nazaj na vrh |
|
 |
igo Član

Pridružen-a: Sre 11 Okt 2006 19:11 Prispevkov: 3641 Aktiv.: 16.01
|
Objavljeno: Tor Feb 13, 2007 12:36 am Naslov sporočila: |
|
|
Ali je bil med temi programi že kakšen program za uro? Ali števec s -seg prikazovalniki?
No, s prekinitvami se takšne stvari krmili, da gredo "kot ur'ca".
Vsaka Daljša zakasnitev je s prekinitvami dolga natanko toliko, kot je potrebno, brez zamudnega štetja ciklov.
Tukaj je: malo teorije .
Tukaj pa: Prekinitev v vsakem drugem primeru.
LP,
Igor _________________ Teoretično je praksa posledica teorije, praktično je pa ravno obratno. (igo 2001)
LP, Igor |
|
Nazaj na vrh |
|
 |
pegla Član


Pridružen-a: Sob 01 Nov 2003 17:32 Prispevkov: 284 Aktiv.: 1.20 Kraj: Sv.Anton
|
Objavljeno: Tor Feb 13, 2007 9:27 pm Naslov sporočila: |
|
|
Res najlepša hvala za odgovore.
Sedaj se mi je posvetilo kdaj naj uporabljam prekinitve, saj sem že prišel do takih problemov kot jih je napisal int47, pa sem z programom precej motovilil da sem ga speljal.Časovne zakasnitve sem pa delal na način "zaposlovanja " uC.
Sedaj verjtno bo programiranje lažje.
L.P.Pegla |
|
Nazaj na vrh |
|
 |
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 493 dni
Powered by phpBB © 2001, 2005 phpBB Group
|