Zitat Zitat von Anonymous
hi

danke, habe ds gerade auch mal umgeschrieben jedoch klappt es noch nicht habe ich was vergessen?
Ja, einiges. Woher soll denn der Chip wissen, daß er gemeint ist.
Bei meiner Sub wird die Adresse ja als Parameter übergeben, wenn Du es anders machst, musst Du Device schon mit einem Wert versehen.
Außerdem muss Value ein Word sein (zumindest wenn Temperaturen über 25,5°C gemessen werden sollen).

Und wie liest Du den Wert aus? Ich entdecke weder eine Print value noch eine Lcd value Anweisung. Ich hatte doch extra eine Sub vorgeschlagen, die Du dann natürlich declarieren musst, um das flexibel in eigenen Programmen verwenden zu können.

Aber bitte... untenstehend der korrigierte Code für Deinen Ansatz:

Code:
'------------------------------------die anweisungen für prozessor,use.-------------------------------------------------
$regfile = "m8def.dat"
$crystal = 7372800
$baud = 9600


Config Scl = Portc.5
Config Sda = Portc.4

Dim Device As Byte
Dim Deviceread As Byte
Dim Lowtemp As Byte
Dim Hightemp As Byte
Dim Value As Word      '!!!!!!!
I2cinit

Device = 144         'Wenn alle Adressleitungen des 1621 auf GND sind.
Deviceread = 145

'----------------------------------------------Hauptprogramm------------------------------------------------------------
Do

I2cstart
I2cwbyte Device
I2cwbyte &HEE                                'Temperaturmessung anstoßen
I2cstop

I2cstart
I2cwbyte Device
I2cwbyte &HAA                                'Temperaturmessung Lesekommando
I2cstop

I2cstart
I2cwbyte Deviceread
I2crbyte Lowtemp , Ack                       'LSB holen
I2crbyte Hightemp , Nack                     'MSB holen

I2cstop

Value = Lowtemp * 10
If Hightemp = 128 Then
  Value = Value + 5
End If

Print value
' oder LCD value

waitms 500                                         'kurze Pause 
Loop
End
Viele Grüße
Henrik