www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Return iz interrupta na željen del kode

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Microchip PIC
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
NeoTO
Član
Član



Pridružen-a: Pon 28 Mar 2005 19:19
Prispevkov: 2752
Aktiv.: 11.62
Kraj: Trzic

PrispevekObjavljeno: Sob Avg 27, 2005 8:34 am    Naslov sporočila:  Return iz interrupta na željen del kode Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
Oliver
Član
Član



Pridružen-a: Sre 27 Okt 2004 13:36
Prispevkov: 39
Aktiv.: 0.16
Kraj: Ljubljana

PrispevekObjavljeno: Sob Avg 27, 2005 10:09 am    Naslov sporočila:  Re: Return iz interrupta na željen del kode Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
NeoTO
Član
Član



Pridružen-a: Pon 28 Mar 2005 19:19
Prispevkov: 2752
Aktiv.: 11.62
Kraj: Trzic

PrispevekObjavljeno: Sob Avg 27, 2005 10:52 am    Naslov sporočila:   Odgovori s citatom

Hvala, je uspelo
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Microchip PIC Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
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