Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > 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? > > <b>Grundlagen Zahlensysteme:</b> > 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.