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 > Ich bin von der Unit 1/2 auf die Maga32 umgestiegen und versuche gerade den ADC Max1238 zum > Laufen zu bringen. Ich benutze das Application Board und habe auf einer zweiten Platine einen PCF8574 > und den Max1238 gelötet. Den PCF kann ich ansprechen, bei dem Max gibt es noch ein Problem. > Geplant ist beide bytes, die ich vom Max auslese auf das LCD zu schreiben. Es wird aber nichts > geschrieben, Daten- und Clockleitung vom I2C wechseln gerade einmal den Zustand. Ich bin mir jetzt > nicht sicher, ob ich einen Denkfehler im Programm habe, oder ob ich etwas wesentliches des I2C > übersehen habe. > > > #ifdef MEGA32 > #define PORT 3 > #endif > > Dim Kanal As Integer ' globale Variablendeklaration > Dim ADDR, AdrMaxS, AdrMaxL, MaxConf, MaxSetup, byte1, byte2, i As Byte > Dim str1(10), str2(3) As Char > '------------------------------------------------------------------------------ > ' > Sub Max1238 (Kanal As Integer) > I2C_Start() > I2C_Write(AdrMaxL) 'Max 1238 lesen > byte1=I2C_Read_ACK() '1. byte auslesen und mit ACK quittieren > byte2=I2C_Read_ACK() '2. byte auslesen und mit ACK quittieren > I2C_Stop() > End Sub > '-------------------------------------------------------------------- > Sub Max1238Init () > I2C_Start() > I2C_Write(AdrMaxS) > I2C_Write(MaxConf) > I2C_Write(MaxSetup) > I2C_Stop() > End Sub > '------------------------------------------------------------------- > Sub Init () > I2C_Init(I2C_100kHz) ' I2C Bit Rate: 100 kHz > LCD_Init() ' Display initialisieren > LCD_ClearLCD() ' Display löschen > LCD_CursorOff() ' Display Cursur ausschalten > LCD_CursorPos(0) > LCD_WriteText(str1) ' Messwert in Zeile 1 > LCD_CursorPos(0x43) > LCD_WriteText(str2) ' V in Zeile2 > Port_DataDir(PORT,&HFF) ' Datenrichtung: 0=in, 1=out > End Sub > '------------------------------------------------------------------------------ > Sub LCDTest (byte1 As Byte, byte2 As Byte) > Dim num(8) As Char > Str_WriteWord(byte1,10,num,0,2) ' Integer n in ASCII String konvertieren > LCD_CursorPos(0x40) ' LCD Cursor positionieren > LCD_WriteText(num) ' String num ausgeben > Str_WriteWord(byte2,10,num,0,2) ' Integer n in ASCII String konvertieren > LCD_CursorPos(0x44) ' LCD Cursor positionieren > LCD_WriteText(num) ' String num ausgeben > End Sub > '------------------------------------------------------------------------ > ' > Sub main() > str1="Messwert" > str2=" V" > Init () > ADDR=&H4E 'PCF8574 alle 3 Adressbits 1 > AdrMaxS=&H68 'Max 1238 schreiben > AdrMaxL=&H69 'Max 1238 lesen > MaxConf=&H01 'Max 1238 Kanal 0 > MaxSetup=&HDA 'Max 1238 Setup > Kanal=0 ' Kanal Nr. > i=0 > Max1238Init () > Lab Lesen > Max1238 (Kanal) ' Funktionsaufruf mit Übergabe der > Port_Write(PORT,i) > i=i+1 > If i=255 Then > i=0 > End If > Goto Lesen > > End Sub >