Re: I2C Befehlsfolge Kategorie: Programmierung (von André H. - 27.01.2005 13:03) | ||
Als Antwort auf Re: I2C Befehlsfolge von Tom - 26.01.2005 15:23 | ||
| ||
Hallo Tom, > > if not i2c.cstart(86) {i2c.stop();"Hier igendwas einbauen um zu sehen das der Baustein reagiert";} > Hier mu� ich Dich korregieren. Eine korrekte Abfrage am I²C-Bus mit Erkennung des Bausteins sieht so aus: if i2c.cstart(0x56) // oder auch in Dezimal { // Baustein vorhanden i2c.stop(); // Meldung, Baustein hat reagiert. } else { i2c.stop(); // Meldung, Baustein hat ncht reagiert. } Wichtig ist, da� man nach einem I2c.start() bzw. i2c.cstart() immer ein i2c.stop() (bzw. i2c.cstop(), wenn das Capture nicht aufgehoben werden soll) schreibt. Das gilt natürlich nicht für ein Repeatet-Start. Ansonsten meinen andere Bausteine, da� der Bus noch nicht "freigegeben" ist, und warte auf das Stop-Zeichen, bis sie selbst wieder auf eine Startbedingung reagieren. Und bei einem vergessenen Stop beim Captured-Start (cstart), wird dann endlos auf die Freigabe des Captures gewartet. > zu testen ob Du überhaupt die richtige Adresse triffst. > Ansonsten mal auf Adresse + 1 schreiben. Hansi hat's zwar schon geschrieben, hjedoch nochmal: Gerade Adressen sind Schreibadressen, ungerade sind Leseadressen. MfG André H. Antworten bitte nur ins Forum! Fragen per EMail auf Forum-Postings werden nicht beantwortet! Das macht meine Heizung gerade | ||
Antwort schreiben Antworten: |