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, > es scheint mir so, als ob du keinen DS18S20 hast, sondern einen DS18B20. > Wenn es so ist, solltest du > LCD_WriteFloat(temp*0.5,1) > in > LCD_WriteFloat(temp*0.06255,1) > ändern > > Gruß Andreas > > > Hallo, > > > > ich benutze das Programm von Ulli zum Auslesen eines DS18S20 ohne I2C to 1Wire Converter. > > Leider sind die Anzeigewerte zu hoch ( bei Zimmertemperatur werden 149,5 Grad angezeigt). > > Hier der Original-Quelltext: > > > > '---------------------------------------------------------------------------------- > > '----- DEMO ----- DEMO ----- DEMO ----- DEMO ----- DEMO ----- DEMO ----- DEMO ----- > > '---------------------------------------------------------------------------------- > > 'Projektname: DS18S20.cprj > > 'Benötigte Libs´s: IntFunc_lib.cc > > 'Routinen: DS18S20.cbas > > 'Autor: Ulli Sommer > > 'Datum: 01.04.2008 > > 'Funktion: Auslesen eines Temperatursensors DS18S20 > > 'Neue Funktionen: Neue Befehle für One Wire nach Dallas Standart > > 'Notitz: ID & Temperatur wird über das Ausgabefenster angezeigt > > '---------------------------------------------------------------------------------- > > > > #define OneWirePin 38 > > > > Dim text(40) As Char > > Dim ret,i As Integer > > Dim temp As Integer > > Dim rom_code(8) As Byte > > Dim scratch_pad(9) As Byte > > > > Sub main() > > > > LCD_Init() > > LCD_ClearLCD() > > LCD_CursorOff() > > > > ret = OneWire_Reset(OneWirePin) > > > > If ret = 0 Then > > text= "kein Device gefunden" > > Msg_WriteText(text) > > Goto Ende > > End If > > > > Do While True > > > > OneWire_Write(0x33) 'read ROM > > For i = 0 To 7 > > rom_code(i) = OneWire_Read() > > 'Msg_WriteHex(rom_code(i)) > > Next > > 'Msg_WriteChar(13) > > > > > > OneWire_Reset(OneWirePin) > > OneWire_Write(0xcc) 'skip ROM > > OneWire_Write(0x44) 'start temperature measure > > > > AbsDelay(2000) > > > > OneWire_Reset(OneWirePin) > > OneWire_Write(0xcc) 'skip ROM > > OneWire_Write(0xbe) 'read scratch_pad > > > > For i = 0 To 8 > > scratch_pad(i)= OneWire_Read() > > 'Msg_WriteHex(scratch_pad(i)) > > Next > > Msg_WriteChar(13) > > > > text = "Temp: " > > 'Msg_WriteText(text) > > > > temp= scratch_pad(1) * 256 + scratch_pad(0) > > 'Msg_WriteFloat(temp * 0.5) > > 'Msg_WriteChar(67) > > 'Msg_WriteChar(13) > > > > LCD_Locate(1,1) > > LCD_WriteFloat(temp*0.5,1) > > > > End While > > > > Lab Ende > > > > End Sub > > > > Was ist falsch ? > > > > Grüße aus Kiel > > > > Andreas Kunze > >