interrupts in interrupts

Gast #75849
Lesenswert?

hallo an alle,
ja also ich frage mich die lezte zeit ob das was ich mir denke so
zulässig ist. ich programmiere ja immernoch an meiner lasershow, da ich
ja noch recht neu bin, dauert das schon ne halbe ewichkeit da ich
während ich das so langsam progge halt alles noch lernen muss. der
derzeitige entwiklungsstand ist das ich mittlerweile asynchron ne ps2
maus auslese und halt zugleich über nen timerinterrupt halt die
positionsdaten für den laser ausgebe. um die maus auszulesen, leg ich
die clockleitung der maus auf den externen interruptpin,  und wenn also
der controller aber grade im timerinterrupt iss, wollt ich wissen, ob
dieser sich nochmal unterbrechen liese um halt die maus auszulesen. zur
zeit führt der mc den timer interrupt noch zu ende, ehe er den externen
bearbeitet ( bzw umgekehrt) aber rein von der möglichkeit, iss es als
zulässig in einem interrupt die interrupt freigabe wieder zu
aktivieren, sich also quasi 2 interrupt prioritäten zu simlulieren.
mfg
eugen dischke
Gast #75850
Lesenswert?

Prinzipiell möglich.
Allerdings solltest Du beachten, dass der Interrupt, in dem Du Dich
gerade befindest, gesperrt wird, bevor Du alle anderen freigibst, sonst
wird der nämlich nochmal aufgerufen, wenn DU zu langsam (oder der Timer
zu schnell) bist.
Beim Stack musst Du einkalkulieren, dass 2 mal die Stackregister
gerettet werden (können) und entsprechend mehr Platz sein muss.

Viel Spass,

Stefan
Gast #75851
Lesenswert?

iss bei der standert konfiguration des rams nicht der stack groß genug?
bzw was meinst du damit das der interrupt gesperrt ist,
etwa das er nochmal aufgerufen wird sobalt ich den 2 interrupt
verlasse? ich benutze den M16 mit 16 Mhz
Gast #75853
Lesenswert?

Meinst Du den M16C von Mitsubishi?

Mit dem hast DU es doch noch viel einfacher, weil der
Interrupt-Prioritäten hat. Einfach die IR-Prio des Interrupts
hochsetzen, der den anderen unterbrechen dürfen soll. Schau Dir dazu
mal das Kapitel Interrupts im Manual an.

Ob der Stack groß genug ist, kommt immer darauf an, was man macht ...
wollte Dich nur daran erinnern, dass sich beim Stack auch noch eine
Änderung ergibt, wenn Du die IRs schachtelst.
Und StandarT ist nur der nackte Chip, alles andere ist
Programmiererlaune ;-)

Stefan

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren