www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Interrupts und Ringbuffer


Autor: Roman (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich beschaeftige mich immer noch mit der MIDI-fizierung meiner Yamaha 
Orgel und denke das ich bei der Benutzung der Interrupts des mega88 
einen Gedankenfehler habe.

Die Orgel sendet mit 1 Mhz Daten in Blöcken von 54 Bytes, die ich per 
externem Interrupt einlesen möchte. Die Daten wiederholen sich nach 10 
Blöcken a 54 Byte. Bisher gehe ich her und warte auf das Kennungsbyte 
und schalte dann das I-Bit im SREG ein. Das Lesen erfolgt in der ISR. 
Nach Erreichen des Ende der ersten 54 Bytes, verlasse ich die ISR und 
kümmere nicht weiter um den Interrupt. Ich hole mittels 2-mal POP die 
alte Ruecksprungadresse vom Stack und werte die Daten aus. Soweit 
theoretisch!

Ich denke nun über einen Ringbuffer zum senden der MIDI-Daten nach und 
stelle fest, das es besser wäre das EXT0 Interrupt Enable Bit ein- und 
auszuschalten um den externen Interrupt abzufangen und das I-Bit im SREG 
immer oben zu lassen. Den Buffer würde ich beim Versenden dann auch über 
das UDRE0 und UDRIE0 Bit steuern muessen. Oder? Also alternativ auf die 
Daten per EXT0 warten oder auswerten und im Hintergrund die MIDI Daten 
senden. Ich fuerchte nur das die Interrupts kollidieren werden?!

Gruss

Roman



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.