Re: Slave Adressen Kategorie: I²C-Bus (von André H. - 8.10.2002 17:25) | |
Als Antwort auf Slave Adressen von NAil - 8.10.2002 13:17
| |
Hallo NAil, > Im Modul ds1621 wird die Adresse des Sensors zum Starten und Auslesen benötigt. > // > i2c.start(Ob10010000+(addr*2)); > // > Meine Frage warum wird die Variable addr addiert und multipliziert? > Soweit bin ich > Ob ist Präfix > 1001 Copntrolbyte > 000 Adresse > 0 oder 1 für R/W > Dies ist eine Erleichterung für den Benutzer. "0b"(in Worten "Null b", nicht "Ob" hei�t nur, da� die Zahl im Binärformat geschrieben wird 0b10010000 ist nicht das Control-byte sondern die Device-Adresse !! Dazu mu� noch der Zustand der Adress-Pins addiert werden. addr spiegelt den Zustand von A0 bis A2 wieder. Mit "mal 2" werden die Bits einmal nach links geschoben. Ich hätte dort auch "shl 1" schreiben können. Kurz: Der Benutzer mu� als Adresse nur die Zahl 0 bis 7 angeben, um den Fühler anzusteuern. Das erleichtert das Programmieren sehr. Darum handhabe ich das so in allen meinen Modulen, die etwas mit dem I²C-Bus zu tun haben. > Dann noch eine Frage: > i2c.write(0x22); > und warum ändert sich diese Zahl im Modul ? Das sind Kommandos für den Fühler (siehe Datenblatt vom DS1621). > warum benötigt man hier eine hex Zahl? Benötigt wird hier nichts bestimmtes ! > Kann nicht eine normale dez Zahl verwendet werden? Grundlagen Zahlensysteme: Es gibt viele Zahlensysteme: Dezimal Hexadezimal Octal Binär (es gibt sicher noch weitere :-) ) Wie man einen Zahl schreibt, ob binär, dezimal oder headez., ist völlig egal. Der Wert bleibt immer gleich. Nur die Schreibweise ist unterschiedlich. Kurz: z.B. die (Dezimal-)Zahl 57 ist identisch mit 0x39 und 0b111001. Der "Programmierer" legt das selbst fest, was ihm mehr liegt. Kommt es auf die Sichtbarkeit von Bitmustern an, so ist es vorteilhafter die binäre oder hexadezimale Darstellung zu benutzen, da man so sehr schnell sehen kann welches Bit sich verändert hat bzw. sehr schnell ein einzelnes Bit ändern kann ohne viel nachzudenken. > Das weis ich. Was wei�t Du ? > write sendet wenn Kommunikation funktioniert -1 sonst 0 > Du meinst wahrscheinlich das Acknowledge-Bit. Das wird von den Funktionen, die Daten senden(start(),write()), ausgewertet und zurückgegeben. Es ist das 9.Bit, das bei jedem übertragenen Byte am I²C-Bus vom empfangenden Baustein "zurückgesendet" wird. Es ist ein Indikator dafür, ob ein Baustein die Daten empfangen hat. Man kann so bei i2c.start z.B. prüfen, ob sich ein Baustein mit der angesprochenen Adresse am Bus befindet bzw. bereit ist(z.B. bei EEProms) > Wäre toll wenn mir jemand helfen könnte. Und wo ist das Problem ?? 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: Re: Slave Adressen (von NAil - 10.10.2002 10:48) Re: Slave Adressen (von André H. - 10.10.2002 14:32) Re: Slave Adressen (von Nail - 14.10.2002 11:58) Re: Slave Adressen (von André H. - 14.10.2002 12:41) Re: Slave Adressen (von Nail - 14.10.2002 14:11) Re: Slave Adressen (von nail - 15.10.2002 11:16) |