Microcontroller Interrupt

Do you have a question? Post it now! No Registration Necessary

Translate This Thread From Danish to

Threaded View
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



Re: Microcontroller Interrupt

Quoted text here. Click to load it
i

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


Quoted text here. Click to load it

    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



Re: Microcontroller Interrupt

Quoted text here. Click to load it
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



Re: Microcontroller Interrupt

Quoted text here. Click to load it

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: <http://hiker.dk

Re: Microcontroller Interrupt
Quoted text here. Click to load it
PC'en:
Quoted text here. Click to load it
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



Re: Microcontroller Interrupt

Quoted text here. Click to load it
programtælleren
Quoted text here. Click to load it

Quoted text here. Click to load it
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
We've slightly trimmed the long signature. Click to see the full one.

Site Timeline