www.mikrocontroller.net

Forum: Compiler & IDEs interrupts in interrupts


Autor: Eugen Dischke (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: eugen dischke (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Joerg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ich benutze den M16 mit 16 Mhz

Dann solltest Du im AVR/MSP430 GCC Forum aber nicht unbedingt die
kompeteten Ansprechpartner erwarten...

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Eugen Dischke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hey nee ich meine den Mega 16 , da hab ich wohl mich etwas falsch
ausgedrückt, sorry *g

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.