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 > <basic>' Testprogramm I2C-ADC (I2C 12-bit, 8-CH Analog-to-Digital Converter) > ' mit AD7828 fertiges mini Modul Fa www.gravitech.us ca 20$ > ' Für ein Hutschienengehäuse habe ich ein solches Modul im Einsatz > ' mit Eingangs - Schutzbeschaltung und für drei Kanäle einen Meßverstärker > ' mit Präz. OPA 07 für Shunt +/-50mV > ' Ernst H. 2011-01-11 > 'Ausgabe: > 'Ch0 Ch1 Ch2 Ch3 Ch4 Ch5 Ch6 Ch7 > '1577 1578 1563 0 0 0 0 0 > '1576 1577 1562 0 0 0 0 0 > '1577 1578 1562 0 0 0 0 0 > '1577 1578 1563 0 0 0 0 0 > 'Kanal 0-1 Nullpunkt angehoben - Lade / Entladestrommessung von Akkus > '************************************************************ > > #define ADC_I2C_ADDR 0x90 ' I2C address > > Dim ADVAL As Word ' Store A/D value > Dim ADVAL_HIGHBYTE As Byte ' High byte of ADVAL > Dim ADVAL_LOWBYTE As Byte ' Low byte of ADVAL > Dim DAT As Byte ' Configuring data > Dim Durchlauf As Integer ' Counter > > Sub main() > > I2C_Init(I2C_100kHz) > > For Durchlauf = 0 To 7 'Überschrift > Msg_WriteText("Ch") > Msg_WriteInt(Durchlauf) > Msg_WriteChar(9 ) 'Tabulator > Next > Msg_WriteChar(13 ) 'CR > > Do While 1 > For Durchlauf = 0 To 7 > Select Case Durchlauf > Case 0 > DAT = 0b10001100 ' Conifg Einstellung für Ch0 > Case 1 > DAT = 0b11001100 > Case 2 > DAT = 0b10011100 > Case 3 > DAT = 0b11011100 > Case 4 > DAT = 0b10101100 > Case 5 > DAT = 0b11101100 > Case 6 > DAT = 0b10111100 > Case 7 > DAT = 0b11111100 > End Select > > I2C_Start() > I2C_Write(ADC_I2C_ADDR) > I2C_Write(DAT) > AbsDelay(1) > I2C_Start() > I2C_Write(ADC_I2C_ADDR+1) 'Leseadresse > ADVAL_HIGHBYTE = I2C_Read_ACK() > ADVAL_LOWBYTE = I2C_Read_NACK() > I2C_Stop() > > 'Msg_WriteWord(Durchlauf) > 'Msg_WriteText(" Wert= ") > > Msg_WriteWord(ADVAL_LOWBYTE + ADVAL_HIGHBYTE * 255) > Msg_WriteChar(9 ) > Next > Msg_WriteChar(13 ) > AbsDelay(1000) > > End While > > End Sub </basic> >