8051 / Interrupts

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

Reply to
Tilo Gockel
Loading thread data ...

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

Reply to
Gerald Oppen

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
Reply to
Gernot Fink

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

Reply to
Uwe Bredemeier

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.