W każdej pętli oczekującej na akcję zastosować prostego timeouta, nawet bez żadnego timera, żeby nie tracić zasobów .... i to wystarczy.
Jak będzie coś nie tak to zgłaszasz komunikat ..... ale
...ale jest jedno małe ale
Przede wszystkim to nie komputer PC więc gdzie zgłosić ten komunikat ? do czego ? do kogo ?

w zdecydowanej większości wypadków jest to po prostu bezcelowe ..... bo skoro nie działa transmisja I2C a zwykle nie jest ona dla zabawy tylko pełni istotną rolę w układzie wbudowanym, na tyle że bez niej zwykle działanie całego urządzenia staje się nonsensem ...
dlatego jak nie działa to przynajmniej szybko wiadomo co

i można to naprawić
a takie pomysły na timeouty w prostej komunikacji I2C przychodzą do głowy, gdy ktoś ma poważne kłopoty ze zrobieniem elektroniki do tego - co w zdecydowanej większości wypadków jeśli chodzi o początkujących sprowadza się np do tego że nie dają rezystorów podciągających linie SDA i SCL do VCC i potem mają takie kwiatki. Tzn raz im to działa a raz nie - i wtedy zaczyna się poszukiwanie przyczyn że niby w programie, że się niby przydałyby timeouty

itp .... a po co ? jak się poprawnie zrobi I2C to śmiga aż miło ...
oczywiście ten wywód nie obejmuje wszystkich przypadków na świecie

ale opowiadam to na podstawie BARDZO CZĘSTO zadawanych pytań i poszukiwań takiego rozwiązania kłopotu z jakim się kolega zwrócił w tym wątku.
_________________
zapraszam na blog:
http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj
Kurs EAGLE ] [ mój kanał YT TV
www.youtube.com/mirekk36 ]