Zitat Zitat von Freiheitspirat
Hallo Frank,

super Dongle !
Nicht so elegant wie eine direkte Bus-Verbindung, aber eine echte Alternative weil so einfach ansteuerbar.
Apropro "einfach", ein paar mehr Kommentare im Sourcecode würde nicht nur Anfängern das Verständnis für die Funktionsweise von I2C sehr erleichtern.
Ich würde zum Beispiel gerne mal den Zusammenhang der Delay-Funktion und dem Bustakt näher verstehen.
Welche Busgeschwindigkeit erreichst Du auf einem "normalem" Rechner ?
Gibt es so überhaupt einen "regelmäßigen" Takt ?
Ist der Schleifenwert 255 einfach "Try and Error", oder wie hast Du den berechnet ?
Hi,
der Code ist im Grunde sehr einfach verständlich weil ich ja die Funktionen zum setzen des Leitungspegels in eine Sub gekapselt habe. Die einzelnen I2C Funktionen bestehen ja aus ganz wenigen Befehlen.

Da der PC ja bei diesem Beispiel als Master arbeitet, ist die Taktrate eigentlich unerheblich. Es muss garkein besonderes Timing eingehalten werden. Den Delay Wert kann man eigentlich noch weiter reduzieren. Es sorgt nur dafür das der Slave keine Flanke verpaßt. Da im Beispiel auch einige While-Schleifen auf den Slave warten, könnte man an einigen oder allen Stellen sogar Delay raus nehmen. Kann man ja einfach austesten, einfach reduzieren bis nix mehr geht.

Die maximale Busgeschwindigkeit wird sicher über das Basic Programm ohnehin nicht erreicht, aber das ist ja meist sowieso nicht notwendig.

Gruß Frank