mg101 napisał(a):
Skąd program wie jakie urządzenie
Myślę, że jak koledze odpowiem na to pytanie to inne się same wyjaśnią ...
program NIE WIE.
Bo niby skąd program ma coś wiedzieć ? To kolega jako programista MUSI WIEDZIEĆ i to przewidzieć. Ja pokazałem prostą implementację, którą na dodatek przygotowałem na konkretne taktowanie 8MHz ...
i jak dasz sobie kwarc/taktowanie 16MHz to już koniec - nie będzie działać - trzeba wtedy sięgnąć do tych delayów o które pytasz i je dwukrotnie wydłużyć - żeby działało ...
Poza tym przy programowej wersji I2C nawet nie rozpatrujemy za bardzo czy mamy podłączone urządzenie wolne czy szybkie (czyli czy np 100kHz czy 400kHz albo jeszcze szybsze) ....
programowa wersja ma po prostu działać - i zwykle dobrze żeby działała przynajmniej 100kHz - chociaż czasem może i wolniej działać bo to zwykle przy foft I2C nie ma żadnego znaczenia - ważne żeby działało
Dopiero przy sprzętowym I2C gdzie wspomaga cię moduł sprzętowy procka TWI, można pokusić się o obsługę wolnych czy szybkich urządzeń bo masz pan rejestry nawet do konfiguracji tych prędkości.
Tak to wygląda.
_________________
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 ]