Forum: Mikrocontroller und Digitale Elektronik interrupt


von peter gecko (Gast)


Lesenswert?

Hi, hab mal ne Frage:
Wie bestimme ich die parameter m und n um eine interrupt routine
aufzurufen?
interrupt n using m
Und was bedeuten diese Parameter?

von Thomas (Gast)


Lesenswert?

Tolle Frage geht wohl um einen 8051. Die Sprache wäre auch ganz gut
gewesen....
n ist die Interuptnummer (n*8)+3 oder so gibt die Interupt Addresse
und damit den Interupt m ist die verwendete Registerbank
es gibt 4 davon  dieser Wert ist optional

Thomas

von peter gecko (Gast)


Lesenswert?

Es geht um einen AT89LS8252 der in c programmiert wird.
Timer 1 lösst diesen  interrupt aus.
void name() interrupt 3 using 3
wie komme ich den genau auf diese Zahlen?
m wäre nach deiner Rechnung (3*8)+3= 27=m ? passt irgendwie nicht?

von Thomas (Gast)


Lesenswert?

doch das passt 27 ist 0x001b das ist die Startadresse des Timer1
Interupts (steht im Datenblatt)

Thomas

von peter gecko (Gast)


Lesenswert?

stimmt :)

vielen Dank!

von Peter D. (peda)


Lesenswert?

Wenn die Interrupts nicht extrem groß sind (was Interrupts ja nicht sein
sollten), dann verschwendet "using" oft mehr SRAM als das es nützt.

Und wenn Bank 1 und 2 nicht verwendet werden, dann fragmentiert "using
3" auch noch das SRAM.

Auch muß man bei "using" drauf achten, daß sämtliche Unterfunktionen
das gleiche "using n" verwenden und das aber kein Interrupt mit
anderer Priorität das gleiche "using n" verwendet.


In der Regel ist es also besser, das "using" wegzulassen.


Peter

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.