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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.