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, > > 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