Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

PIC16 kada se pojave interapti u isto vreme

[es] :: Elektronika :: Mikrokontroleri :: PIC16 kada se pojave interapti u isto vreme

[ Pregleda: 1105 | Odgovora: 7 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

maricc
Dusan Maric
Rakovac

Član broj: 89909
Poruke: 130
*.dynamic.sbb.co.yu.



Profil

icon PIC16 kada se pojave interapti u isto vreme14.02.2007. u 20:05

Nigde da nadjem, pa ako neko zna neka podeli s nama koji ne znamo...
Kod PIC16... mikrokontrolera, kada nastupe nekoliko interapta u isto vreme ili u vreme dok se izvrsava ISR za onog koji je prvi nastupio, sta se desava dalje? Da li su ostali zahtevi za interapt izgubljeni, ili cekaju red, ili trebamo nesto uraditi da ne izgubimo ostale zahteve za interapt?
Ako neko ima link, gde da procitam nesto u vezi ovoga bio bih zahvalan.

Dusan
14.02.2007. u 20:05 

16f84
Slovenia

Član broj: 75520
Poruke: 59
89.142.17.*

Sajt: www.elektronik.si


Profil

icon Re: PIC16 kada se pojave interapti u isto vreme14.02.2007. u 20:49
Kad dođe do interupta kad se več on izvršava odmah iza konca(retfie) izvede se ponovno interupt.
Priuritet zavisi od toga kako je pisana rutina koja proverava koji interup se je desio.


Primer imamo ukopčan INTF i TMR0 prekid

Code:

             org 0x4
             goto IRQ

             org 0x5
    IRQ
          movwf WTMP         ;shrani se W register  
          swapf STATUS,W
          movwf STMP          ;shrani se STAUS register
          clrf STATUS           ;
          btfsc INTCON,T0IF  ;je došlo do TMR0 interupta ?  
          goto TMR_IRQ         ; da skok na rutino koja se treba izvršiti kot TMRO interuta
   IRQ2
          btfsc INTCON,INTF   ;je došlo do INTF interupta? 
          goto INT_IRQ          ; da skok na rutino koja se izvede kot INTF interupta
   END_IRQ
          swapf STMP,W
          movwf STATUS       ;vratimo STATUS
          swapf WTMP,f
          swapf WTMP,W       ;vratim W
           retfie                    ;izlazak iz interupta


    TMR_IRQ
           ............
           ............
           bcf INTCON,T0IF    ;brisanje flaga prekida TMR0
           goto IRQ2  

    INTF_IRQ
           .............      
           .............
           bcf INTCON,INIF     ;brisanje INTF flaga
           goto END_IRQ



U ovom primeru je prioritetni TMR0 interupt.


14.02.2007. u 20:49 

maricc
Dusan Maric
Rakovac

Član broj: 89909
Poruke: 130
*.dynamic.sbb.co.yu.



Profil

icon Re: PIC16 kada se pojave interapti u isto vreme14.02.2007. u 21:24
Citat:
16f84: Kad dođe do interupta kad se več on izvršava odmah iza konca(retfie) izvede se ponovno interupt.


Ovo me narocito zanima. Sto znaci, zahtev za interrupt ceka sve dok ...... cek' malo....???
Kazes izvede se ponovo interapt? Nije mi sve bas jasno sada, a mislio sam da jeste.
Jel' to znaci da brisanjem flaga, njemu znaci nema vise interapta ? Ili ?
Sta ce biti ako novi interapt nastupi na labeli recimo END_IRQ, a u servisnoj rutini na pocetku stavimo DI ?
Sve mi je ovo nekako smuckano tako da nisam siguran.

Hvala na brzom odgovoru 16f84 ! Primer je veoma koristan.


Dusan


[Ovu poruku je menjao maricc dana 15.02.2007. u 00:09 GMT+1]
14.02.2007. u 21:24 

maricc
Dusan Maric
Rakovac

Član broj: 89909
Poruke: 130
*.dynamic.sbb.co.yu.



Profil

icon Re: PIC16 kada se pojave interapti u isto vreme17.02.2007. u 20:46

16f84 ,
da li je potrebno u tvom primeru pre labele staviti instrukciju DI?
Drugo , sta ce se desiti ako naredni interupt nastupi recimo iza labele END_IRQ ?

Dusan
17.02.2007. u 20:46 

_str_

Član broj: 53798
Poruke: 650
*.dialup.neobee.net.



Profil

icon Re: PIC16 kada se pojave interapti u isto vreme17.02.2007. u 22:49
Dok traje jedan inerupt, neće se preći na drugi pre nego se završi sa prvim. Ako se teoretski pojave dva interupta u isto vreme, kontroler će krenuti na onaj sa višim prioritetom. U jenom kontroleru ne postoje dva interupta istog prioriteta.
__*__
*___*
17.02.2007. u 22:49 

maricc
Dusan Maric
Rakovac

Član broj: 89909
Poruke: 130
*.dynamic.sbb.co.yu.



Profil

icon Re: PIC16 kada se pojave interapti u isto vreme17.02.2007. u 23:27
_str_ . logicnije mi je ono sto je napisao 16f84" da prioritete odredjujemo sami u int. serv. rutini. To je jasno, nego , glavno pitanje je sta ce se desiti ako interapt naidje bas usred int.serv. rutine, a u njoj smo zabranili interapte dok se ona ne izvrsi sto se cesto radi? Verovatno ce biti trajno izgubljen ili ce flag za taj interapt biti ukljucen .... e sta sad biva?
Da li se nakon "retfie" desi ponovo interapt ili ne?

Dusan
17.02.2007. u 23:27 

_str_

Član broj: 53798
Poruke: 650
212.200.180.*



Profil

icon Re: PIC16 kada se pojave interapti u isto vreme18.02.2007. u 12:18
A da ti lepo odradis simulaciju korak po korak u MPLAB-u i jos malo nesto procitas o kontroleru koji te interesuje?
__*__
*___*
18.02.2007. u 12:18 

maricc
Dusan Maric
Rakovac

Član broj: 89909
Poruke: 130
*.dynamic.sbb.co.yu.



Profil

icon Re: PIC16 kada se pojave interapti u isto vreme18.02.2007. u 17:05

Citat:
_str_: A da ti lepo odradis simulaciju korak po korak u MPLAB-u i jos malo nesto procitas o kontroleru koji te interesuje?


Kada bi svi sve procitali i simulirali, ovaj forum nebi nikome ni trebao. Ja nailazim i na jos gluplja pitanja, pa ako znam ja odgovorim, to je dobra volja, niko nikog ne prisiljava da mu kaze ono sto zna. Na kraju cu i tako i tako saznati ono sto me zanima. Hvala na odgovoru!

Dusan
18.02.2007. u 17:05 

[es] :: Elektronika :: Mikrokontroleri :: PIC16 kada se pojave interapti u isto vreme

[ Pregleda: 1105 | Odgovora: 7 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.