diese blockierenden Funktionen sind einer der Gründe, warum ich grundsätzlich Multitasking verwende.
Funktionen, die auf Ergebnisse warten müssen, werden in eigenständige Tasks ausgelagert und können da warten, bis sie schwarz werden - und das übrige Programm läuft auf seinen Zeitscheiben problemlos weiter.
Übrigens machen auch TFT Displays diese Blockierung, daher kommt die Displayausgabe grundsätzlich bei mir auch in eigenständige Tasks.
Für den Arduino Due gibt es die Scheduler lib (kooperatives MT), doch auch für AVRs liegen inzwischen MT Libs vor, teilweise sogar pre-emptiv.
http://forum.arduino.cc/index.php?topic=347188.0
http://www.rtos48.com/
Lesezeichen