Hallo,
Ich habe eine eigene, umfangreiche Routine zur Ansteuerung eines SRF08 Ultraschallsensors erstellt und sie in einen Artikel im Wiki veröffentlicht.
Die Besonderheit liegt darin, dass die Messung automatisch im Hintergrund abläuft, und das Hauptprogramm nicht blockiert. Man startet einmal den Messvorgang, und es wird automatisch immer wieder gemessen. Es werden keine Warteschleifen verwendet, daher geht keine Rechenzeit verloren. Man kann jederzeit auf den aktuellen Wert zugreifen, ohne erst auf dem Abschluss einer Messung (dauert sonst bis zu 65ms) warten zu müssen.

Für den I2C-Bus habe ich die lib von Peter Fleury verwendet.

Mein Programm benötigt einen Timer-Interrupt, der etwa alle 10ms aufgerufen wird. Darin wird die gesamte Ablaufsteuerung durchgeführt. Das Hauptprogramm kann jederzeit über eine Funktion den letzten Messwert abfragen.

Ich würde mich über Anmerkungen, Fragen und Verbesserungsvorschläge freuen!