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> C Quellcode formatieren: <code>Quellcode</code> BASIC Quellcode formatieren: <basic>Quellcode</basic> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! -> I > Hallo Marcel, > > vielen Dank. Falls ich noch einen mit I²C finde (was ich hoffe), werde ich Deine Routine gut > gebrauchen können. > > MfG Tobias > > > > Hallo Tobias, > > > > ich habe hier eine Routine für den MAX127. > > Vielleicht hilft dir das weiter. > > > > Gruß Marcel > > > > '------------------------------------------------- > > ' ADWert von MAX 127 einlesen > > ' Adr= Adresse (I²C) > > ' Range= Bereich siehe Datenblatt > > ' Channel= Channel ,der ausgelesen werden soll > > '------------------------------------------------- > > Sub Max127(Adr As Byte, Range As Byte, Channel As Byte) As Single > > Dim RangeChannel As Byte > > Dim ADs As Single > > > > RangeChannel=128 > > If Range=1 Then > > RangeChannel=136 > > ElseIf Range=2 Then > > RangeChannel=132 > > ElseIf Range=3 Then > > RangeChannel=140 > > Else > > RangeChannel=128 > > End If > > > > If Channel=1 Or Channel=3 Or Channel=5 Or Channel=7 Then > > RangeChannel=RangeChannel+16 > > End If > > If Channel=2 Or Channel=3 Or Channel=6 Or Channel=7 Then > > RangeChannel=RangeChannel+32 > > End If > > If Channel=4 Or Channel=5 Or Channel=6 Or Channel=7 Then > > RangeChannel=RangeChannel+64 > > End If > > I2C_Start() > > I2C_Write(Adr) > > I2C_Write(RangeChannel) > > I2C_Stop() > > I2C_Start() > > I2C_Write(Adr+1) > > a=I2C_Read_ACK() > > b=I2C_Read_ACK() > > I2C_Stop() > > b=b>>4 > > a=a*16+b > > ADs=a > > If Range=0 Then > > ADs=(ADs*5)/4096 > > ElseIf Range=1 Then > > ADs=(ADs*10)/4096 > > ElseIf Range=2 And ADs<2048 Then > > ADs=(ADs*10)/4096 > > ElseIf Range=2 And ADs>2048 Then > > ADs=((4096-ADs)*10)/4096 > > ADs=ADs*(-1) > > ElseIf Range=3 And ADs<2048 Then > > ADs=(ADs*20)/4096 > > ElseIf Range=3 And ADs>2048 Then > > ADs=((4096-ADs)*20)/4096 > > ADs=ADs*(-1) > > > > End If > > Return ADs > > End Sub > > > > > > > Hallo, > > > > > > hat vielleicht schon einmal einer eine Routine für einen seriellen AD-Wandler, wie z.B. den MAX1148 > > > geschrieben? Gerne auch andere Typen. Wichtig wären mir nur 14 BIT und min. vier differentielle > > > Eingänge, 0-5 oder 0-10V. > > > > > > Einen I²C-Typen mit differentiellen Eingängen habe ich leider nicht gefunden. Ich denke da wäre > > > die Umsetzung einer Software mit den fertigen I²C-Routinen schneller realisiert. > > > > > > Freue mich über jeden Hinweis, ob Routine oder vielleicht doch einen I²C-Wandler, den ich übersehen > > > hab. > > > > > > MfG Tobias