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


Pridružen-a: Pon 28 Mar 2005 19:19 Prispevkov: 2752 Aktiv.: 11.62 Kraj: Trzic
|
Objavljeno: Sob Avg 27, 2005 8:34 am Naslov sporočila: Return iz interrupta na željen del kode |
|
|
Imam takšno situacijo: neka koda se mi izvaja v glavni zanki. Ko pa se zgodi interrupt, bi želel, da PC zagotovo skoči na začetek zanke.
Koda: |
INT_isr()
{
neka koda v interruptu
}
main
{
inicializacija...
while(1)
{
zacetek:
shranim zacetek v neko spremenljivko zacetek_global
obsežna koda ....
obsežna koda ....
obsežna koda ....
obsežna koda ....
}
}
|
Torej želim, da ko se sproži interrupt, da mi PC skoči na zacetek, brez da bi moral to preverjati v glavni zanki.
Vem, da ima PIC sicer hardwarski stack, ampak je kakšna možnost, da noter vrinem nek naslov?
bi v kodi z interruptom lahko klical kar naslov zacetek:
Koda: |
INT_isr()
{
zacetek_global nekako spravim na stack
}
|
|
|
Nazaj na vrh |
|
 |
Oliver Član

Pridružen-a: Sre 27 Okt 2004 13:36 Prispevkov: 39 Aktiv.: 0.16 Kraj: Ljubljana
|
Objavljeno: Sob Avg 27, 2005 10:09 am Naslov sporočila: Re: Return iz interrupta na željen del kode |
|
|
Citiram: |
Vem, da ima PIC sicer hardwarski stack, ampak je kakšna možnost, da noter vrinem nek naslov? |
Odvisno kateri PIC imaš. PIC s 16 bitnimi instrukcijami (npr. 18Fxxxx) ima to možnost, PIC s 14 ali 12 bitnimi (npr. 16Fxxx, 12Fxxx itd.) pa te možnosti nima.
Citiram: |
Torej želim, da ko se sproži interrupt, da mi PC skoči na zacetek, brez da bi moral to preverjati v glavni zanki. |
Ali želiš, da se program še kdaj vrne na mesto, kjer je bil prekinjen?
Če ne, lahko narediš takole:
Koda: |
INT_isr()
{
neka koda v interruptu, ki tudi zbriše ustrezno interrupt zastavico in nastavi vse potrebno za začetek
skok na začetek
}
main
{
inicializacija...
while(1)
{
zacetek:
dovoli zopet interrupt (GIE=1)
shranim zacetek v neko spremenljivko zacetek_global
obsežna koda ....
obsežna koda ....
}
}
|
LP, Oliver |
|
Nazaj na vrh |
|
 |
NeoTO Član


Pridružen-a: Pon 28 Mar 2005 19:19 Prispevkov: 2752 Aktiv.: 11.62 Kraj: Trzic
|
Objavljeno: Sob Avg 27, 2005 10:52 am Naslov sporočila: |
|
|
Hvala, je uspelo |
|
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: 492 dni
Powered by phpBB © 2001, 2005 phpBB Group
|