also ich komme ohne die kalibrierung aus und auch ohne single variaablen damit konnte ich den code von 26% aud 17% drücken
	Code:
	$regfile = "m8def.dat"
$crystal = 8000000
'$baud = 19200                                               ' baud rate
$hwstack = 32                                               ' default use 32 for the hardware stack
$swstack = 10                                               ' default use 10 for the SW stack
$framesize = 40
'dont touch eeprom data by restart
$eepleave
'config
Config Lcd = 16 * 4                                         'LCD Display
Config Lcdpin = Pin , Db4 = Portd.2 , Db5 = Portd.1 , Db6 = Portd.0 , Db7 = Portd.7 , E = Portd.3 , Rs = Portd.4
Config Adc = Single , Prescaler = Auto , Reference = Avcc
'cuonstanten
Const Tnull = 559                                           'nei 25°
Const Traum = 609                                           '   bei 0°
Const Faktor = 5                                            'erechnet aus 5V/1024=0,048
'dim
Dim Zahl As Word
Dim Wert As Word
Dim Temperatur As Word
Dim Text As String * 1
Deflcdchar 1 , 8 , 20 , 8 , 32 , 32 , 32 , 32 , 32          ' replace ? with number (0-7)
Initlcd
Cursor Off
Start Adc
Anfang:
Cls
Zahl = Getadc(3)
Wert = Zahl
Lcd "adc  " ; Zahl
Text = "+"
If Wert > Traum Then
 Zahl = Wert - Traum
 Zahl = Zahl * Faktor
 Temperatur = 250 + Zahl
 End If
If Wert = Traum Then Temperatur = 250
If Wert < Traum And Wert > Tnull Then
 Zahl = Traum - Wert
 Zahl = Zahl * Faktor
 Temperatur = 250 - Zahl
 End If
If Wert = Tnull Then
 Text = " "
 Temperatur = 0
 End If
If Wert < Tnull Then
 Text = "-"
 Zahl = Tnull - wert
 Temperatur = Zahl * Faktor
 End If
Zahl = Temperatur / 10
Wert = Temperatur Mod 10
Locate 3 , 1 : Lcd "Temp " ; Zahl ; "." ; Wert ; Chr(1) ; "C"
Wait 1
Goto Anfang
 5V stabil
|
4,7K
|
V+ --> ADC  ref AVCC mit 10µH und 100nF extern
LM335
V-
|
GND
						
					
Lesezeichen