Martin schrieb:
> Unter Posix Systemen gibt es die Funktion select() auf verschiedene I/O
> Ereignisse zu warten. Könnte man so etwas auch mit der avr-libc
> realisieren?
Naja, die Idee von select() ist, daß dein Programm dort stehenbleiben
und auf mehrere Quellen gleichzeitig warten kann, ohne dabei anderen
Tasks Rechnzeit wegzunehmen. Nun ergibt sich das in der Regel auf einem
AVR nicht, wenn du nicht gerade irgendein RTOS drauf laufen läßt. Du
kannst also einfach, wie es Peter schreibt, in einer Schleife die
unterschiedlichen Quellen pollen.
Martin schrieb:
> Mich hat nur interessiert ob es bereits eine generische Lösung gibt. So
> weit ich das im Code von der avr-libc erkennen kann, fehlt die
> Möglichkeit abzufragen ob eine I/O Quelle bereit zum lese / schreiben
> ist oder einen Fehler liefert.
Brauchst du extra eine lib-Funktion, um ein Flag in einem I/O-Register
abzufragen?
> Wenn dafür Callbacks in der FILE struct registriert werden können, kann
> im Prinzip eine generische ähnlich zur Version von Peter Dannegger
> implementiert werden.
Generisch ist halt immer ganz nett, aber dafür halt meist komplizierter
und mit einem Overhead verbunden. Ob es das auf einem AVR wert ist?