Forum: Mikrocontroller und Digitale Elektronik Interrupts und Ringbuffer


von Roman (Gast)


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



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.