Da es allerdings pro dargestelltes Bild 48 Bytes sind, die ich einlese, muss ich sie natürlich sobald sie eintreffen einlesen, sonst gehen die Daten der folgenden Bilder verloren. Klappt beim ersten mal auch ganz gut, aber sobald ich mich im loop() zum ausgeben befinde, sind beim erneuten Senden die Daten natürlich aufgelaufen bis ich wieder am Anfang der loop()-Schleife bin.
Ich nehme an, dass die beste Möglichkeit nun ein Interrupt wäre, das darauf reagiert, dass Daten im Eingangspuffer ankommen, diese einliest und dann wieder an den Anfang der loop()-Schleife springt um auch gleich das neue Bild auszugeben.
Leider komme ich hier nicht weiter :-(
Könnt Ihr mir vllt mit einem Beispiel auf die Sprünge helfen?
Laut
http://arduino.cc/en/Serial/Available ist der Puffer der Hardware-Serial Schnittstelle beim Arduino 64 Bytes gross. Da sollten Deine 48 Bytes locker drin Platz finden.
Im übrigen: Arbeitest Du vielleicht irgendwo im Programm mit delay()?
Dann wird Deine loop()-Funktion nicht schnell genug abgearbeitet!
Wenn Deine loop()-Funktion immer auf Drehzahl gehalten wird und zigmal pro Sekunde durchläuft und die bereitstehenden Zeichen an der seriellen Schnittstelle ausliest, dann sollte es ein schnarchlangsamens Interface wie das serielle Interface es niemals schaffen, zwischendurch seinen Puffer mit 64 Zeichen vollzubekommen.