I2C Kommunikation im Interrupt

Ich habe im "Zeigt her eure geilen Projekte" Thread schon geschrieben.
Ich habe das Problem das ich in einer Interruptroutine I2C-Kommunikation brauche.
Aber die WIRE-Lib will im Int nicht arbeiten.
Wie kann ich dieses Problem lösen.
Gibt es eine alternative Library ?

Ulli

In ISRs gehen normal keine anderen Interrupts.

Setze im Interrupt nur ein Flag auf dass du in loop() abfragst. Dann kann alles in normalen Programmablauf geschehen.

Ja schade,

ich wollte eine Keyboardlibrary mit Callback implementieren.
Der Interrupt sollte nicht nur zeigen "Da ist eine Taste" sondern dem Callback als
Parameter auch gleich den Tastencode mitgeben.
Meine Keyboardroutine ist für KeyBoards an Portexpandern gedacht die ich nun mal über I2C
abfrage.

Ich habe gerade wiedergefunden das ich mal die I2CMaster lib benutzt habe. Ich glaube die
klappt im Interrupt. Mal schauen.

Ulli

Du kannst die Interrupts auch wieder per Hand aktivieren. Über das Interrupt Enable Bit im SREG Register. Aber das kann auch schief gehen, da dann auch andere Interrupts wie Timer dazwischen kommen können.

beeblebrox:
ich wollte eine Keyboardlibrary mit Callback implementieren.
Der Interrupt sollte nicht nur zeigen "Da ist eine Taste" sondern dem Callback als
Parameter auch gleich den Tastencode mitgeben.
Meine Keyboardroutine ist für KeyBoards an Portexpandern gedacht die ich nun mal über I2C
abfrage.

Ich verstehe dich nicht!
Warum hast du dich so auf Interrupts fest gefressen?
Welchen Grund gibt es dafür?
Und damit meine ich nicht deine oberflächliche Begründung, sondern den tiefen Grund.
Den unabwendbaren Grund.

War eigentlich die, ich sage mal, Anforderung eines Forumsmitglieds.
Ich kann mit meinen Routinen so wie sie sind schon gut leben.
Ab und zu mal in der Loop schauen ob eine Taste gedrückt ist und dann in einen
anderen Subautomaten verzweigen reicht mir eigentlich.
Und auch eventuell die reine Benachrichtigung im Interrupt "da ist was an der Tastatur".
Mich hatte nur ein wenig der Ehrgeiz gepackt das noch etwas schöne zu machen.

Ich habe gerade mal meine alten Projekte durchgewühlt und da ein - ziemlich unsinniges -
LED Lauflicht gefunden. War damals so ein wenig Fingerübung.
Das hatte ich mit 3 PCF-Portexpandern gemacht und diese auch aus einem
Timerinterrupt angesteuert. Da habe ich dann auch die I2CMaster-Lib genommen weil
Wire nicht ging. Werde mal alles darauf umschreiben.

Ulli