8051 / Interrupts

Sep 01, 2004 3 Replies

Liebe Kollegen,



zu den Interrupts des 8051 hätte ich da mal eine (vielleicht blöde) Frage:



Anscheinend hat der 6 Interrupts, zwei externe, vier interne (drei Zähler/Timer, einmal Serielle Schnittstelle).



Wenn ich nun die zwei externen benutze, mir hierfür selbst in der ISR eine Zählroutine schreibe (also keinen Zähler verbrauche), gehe ich dann recht in der Annahme, dass ich noch die drei Timer frei hab?



Generell quasi: wieso macht man das nicht immer so? Wieso koppelt man manchmal externe Interrupts an Timer und verschenkt diese?


Danke und Grüße



Tilo


-

formatting link


Tilo Gockel schrieb:

Weil das Rechenzeit kostet und somit auch die Zählgeschwindigkeit stärker begrenzt ist als wenn Du einen autarken Counter benutzt der erst bei erreichen bestimmter Zustände bzw. zum Auslesen Rechenleistung benötigt.

Die Interruptroutinen sollten immer möglichst kurz sein sonst kommst Du bald nicht mehr hinterher die Interrupts auch abzuarbeiten. Dann kann der Stack überlaufen und Dein Programm abstürzen.

Gerald

Das stimmt. Allerdings verlierst du deine externen Interrupts und Rechenzeit. Zusätzlich fängst du dir jitter auf der ensprechenden Interruptebene ein und brauchst eine externe Taktquelle.

Wer macht denn sowas. Jeder Timer hat seinen eigenen Interrupt. Manchmal mißbraucht man vieleicht einen Timereingang um einen zusätzlichen externen Interrupt zu bekommen, aber andersrun eigendlich kaum.

MFG Gernot

Tilo Gockel schrieb:

Zwei (echte) beim Ur51er

Weil die Timer als Zähler schneller sind als Softwareschleifen? Weil man den Timer zufällig eh für nichts anderes braucht? Weil der Prozessor besseres zu tun hat als interruptgetriggert (= großer Overhaed wegen Register retten) eine blöde Zählschleife zu in- oder decrementieren und abzufragen? Weil die Ext. Interruptpins bereits belegt sind? Weil das Routing der Leiterplatte einfacher ist?

Such dir was aus, die reale Welt ist nicht schwarzweiß ;-)

Gruß

Uwe

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required