Hallo, ich versuche verzweifelt einen LM75 anzusteuern.
Auf dem RPI unter Linux funktionierd das Prima, unter Bascom scheitert er jedoch schon beim i2cstart.
Leider findet sich weder in google noch in der Bedienungsanleitung irgendein Hinweis was hier falsch läuft.
Ich hab keine Ahnung was ich noch machen soll.
MFG ThalhammerCode:$regfile "m88def.dat" 'Angabe der Taktfrequenz (8Mhz) $crystal = 8000000 $baud = 9600 'Einbindung der I2C-Bibliothek $lib "i2c_twi.lbx" 'Angabe der I2C-Bus-PIN´s (mit i2c_twi.lbx nicht veränderbar!) Config Sda = Portc.4 Config Scl = Portc.5 Config TWI = 100000 'Konfiguration der Ports Config Portd = Output Dim I2c_state As Bit Dim N As Byte 'Variablen für Temperaturmessung LM75 Basis-Adresse Hex 90/91 (=144/145) Const Lm75slavewrite = &H48 Const Lm75slaveread = &H49 Dim Lm75high As Byte Dim Lm75low As Byte Dim Temperatur As Integer Dim Nachkommastelle As String * 2 'Anschaltung des I2C-Busses I2cinit Print Err; '====================================================== 'Hauptprogramm-Schleife '====================================================== Do 'LM75 Abfrage I2cstart If Err = 1 Then Print "Error starting TWI"; I2cwbyte Lm75slaveread Print Err If Err = 1 Then Print "Error Writing address\nIs the device connected ?"; I2crbyte Lm75high , Ack If Err = 1 Then Print "Error reading High byte"; I2crbyte Lm75low , Nack If Err = 1 Then Print "Error reading Low byte"; I2cstop Print Err Print Lm75high ; Lm75low If Lm75high > 127 Then Temperatur = Lm75high And 127 Temperatur = Not Temperatur Incr Temperatur Else Temperatur = Lm75high End If Lm75low = Lm75low And 128 If Lm75low > 0 Then Nachkommastelle = ",5" Else Nachkommastelle = "" End If Print "Temp.: " ; Temperatur ; Nachkommastelle ; " Grad" 'Status-Life-Bit für Hauptprogramm Toggle Portd.0 Waitms 500 Loop 'Programmende (nur formal) End







Zitieren

Lesezeichen