Microcontroller Interrupt

Hvordan virker Interrupt egentlig? Hvordan ved Processoren hvilken adresse i programmet den skal hoppe til når der kommer et interrupt fra en given instans? Hvordan er koblingen fra et fysisk ben der bliver trukket lav til at "Program Counteren" (er det ikke det den hedder?) sættes til en helt anden adresse?

Mvh. Terry

Reply to
Terry Andersen
Loading thread data ...

"Terry Andersen" skrev i en meddelelse news:br72d2$lej$ snipped-for-privacy@news.net.uni-c.dk...

i

Det afhænger hva for en MPU du snakker om...

Tror du må formulere dette på en anden måde, men jeg gætter på du hendtyder til at du bruger et eksternt Hardware interupt ben, som trigges når det går lavt ??? igen så afhænger det af hva MPU vi snakker om.

VH Lars Molnit

Reply to
Moller

"Terry Andersen" skrev i en meddelelse news:br72d2$lej$ snipped-for-privacy@news.net.uni-c.dk...

i

Som tidligere nævnt afhænger det af hvilken MPU vi taler om.

En oplagt implementering er dog, at indgangssignalet til programtælleren (PC), styres af en multiplexer, som afhængigt af et kontrolsignal, hvor bl.a. "det fysiske ben" indgår, sender en af følgende værdier ind i PC'en:

1) Efterfølgende adresse - dvs. PC+1 (eller 4 afhængig af MPU) 2) branchadresse - dvs. en beregnet værdi af PC'en 3) interruptadresse - ofte en prædefineret værdi

- der er sikkert flere muligheder...

Håber det giver mening!

/Kenneth

Reply to
Kenneth Brun Nielsen

Det er vist en brugbar kort oversigt, der skal nok lidt flere detaljer på

3'eren:

3a) Først fuldføres den instruktion der er igang

3b) Efterfølgende adresse - dvs. PC+1 gemmes 3c) Der springes til interrupt adressen 3d) Når interrupten er udført springes tilbage til adressen fra 3b

Og så er der en masse omkring f.eks. hvordan adresser gemmes, hvordan registre gemmes før/under interrupt rutinen og prioritering af interrupt.

--
  Med venlig hilsen,    Ove Kjeldgaard,    nospam AT privat DOT dk
  Natur og Friluftsliv:
Reply to
Ove Kjeldgaard

PC'en:

registre

Mange tak for jeres svar. Det var selve hardware-opbygningen med en multiplexer for PC jeg var ude efter. Mange tak, det forstår jeg godt. På hver MPU må der jo så sidde en Interrupt Controller der føder multiplexeren med den korrekte adresse i forhold til hvilket interrupt der er opstået (externt interrupt ben, intern overløb af timer, m.m.). Så skal compiler blot vide på hvilke adresser de forskellige interrupt rutienr skal ligges. Korrekt ikke?

Mvh. Terry

Reply to
Terry Andersen

programtælleren

multiplexeren

Jo, PC bliver typisk gemt på stacken og hentet efter interruptet vha push/pop.

--
mvh/rg. Christian
Påkører du klovbærende vildt, afmærk stedet
og ring til en fra Schweisshunderegistret:
http://www.schweiss.dk/ eller Falck: 70 10 20 30
Reply to
Christian B. Andresen

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.