elomax

[ Techniek ] [ Shop ] [ Site map
Routines ] Blokkeren ] Bronnen ] Afhandeling ] Voorbeeld ] Mutual exclusion ] [ Prioriteiten ]

Terug
Omhoog

Interrupt prioriteiten

De processor bekijkt na het uitvoeren van elke instructie of er een interrupt is die afgehandeld moet worden. Er zijn meerdere interrupt bronnen. Tijdens het uitvoeren van een instructie zouden twee of meer interrupts actief kunnen worden. Aan het eind van de instructie kunnen meerdere I/O schakelingen daardoor tegelijkertijd een interrupt aanvraag actief hebben. De processor moet nu beslissen welke interrupt het eerst afgehandeld moet gaan worden. Hiervoor hebben alle interrupt bronnen een eigen prioriteit gekregen.

Als er twee of meer interrupts actief zijn, zal de actieve interrupt met de hoogste prioriteit het eerst afgehandeld worden. Wanneer de interrupt met de hoogste prioriteit is afgehandeld, keert de processor terug uit de betreffende interrupt routine, en wordt de actieve interrupt met de eerstvolgende prioriteit afgehandeld.

De XIRQ interrupt heeft altijd een hogere prioriteit dan de interrupts die via het I-bit geblokkeerd kunnen worden.

Wanneer twee of meer interrupt bronnen uit de onderstaande lijst (alle interrupts die door het I-bit geblokkeerd kunnen worden) tegelijkertijd optreden, wordt de interrupt die het verst beneden aan de lijst staat het eerst uitgevoerd.

Naam Omschrijving
sciint  interrupt van de seriële interface
spiint  interrupt van de uitbreidingspoort
paiint  een actieve flank op de ingang van de puls teller
paoint  de pulsteller gaat van $FF naar 0
timint  de free running counter gaat van $FFFF naar 0
toc5int  interrupt van output compare 5
tic4int  interrupt van input capture 4
toc4int  interrupt van output compare 4
toc3int  interrupt van output compare 3
toc2int  interrupt van output compare 2
toc1int  interrupt van output compare 1
tic3int  interrupt van input capture 3
tic2int  interrupt van input capture 2
tic1int  interrupt van input capture 1
rtiint  interrupt van de real time interrupt
irqint  interrupt via de externe IRQ pin

Nadat de I/O uitgebreider is behandeld, zult u beter begrijpen waar de verschillende interrupts vandaan komen. De lijst hierboven is opgenomen om compleet te zijn, het is niet nodig er nu al veel aandacht aan te schenken.

prioriteiten veranderen

Via 4 bits in het HPRIO register kan één van de onderstaande interrupt bronnen de hoogste prioriteit gegeven worden, zodat deze als eerste zal worden uitgevoerd als er twee of meer interrupts tegelijkertijd optreden. Deze 4 bits mogen alleen veranderd worden als de interrupts via het I-bit geblokkeerd staan.

PSEL3

PSEL2

PSEL1

PSEL0

bron met hoogste prioriteit

0

0

0

0

timint

0

0

0

1

paoint

0

0

1

0

paiint

0

0

1

1

spiint

0

1

0

0

sciint

0

1

0

1

gereserveerd

0

1

1

0

irqint

0

1

1

1

rtiint

1

0

0

0

tic1int

1

0

0

1

tic2int

1

0

1

0

tic3int

1

0

1

1

toc1int

1

1

0

0

toc2int

1

1

0

1

toc3int

1

1

1

0

toc4int

1

1

1

1

tic4int of toc5int

Bij de meeste toepassingen zal het niet nodig zijn de prioriteiten van de interrupts te wijzigen. In de cursus zal hieraan verder geen aandacht geschonken worden.


Vorige ]

© 2005...2008 Elomax [Voorwaarden ]