Hallo,
könnte mir vielleicht jemand helfen?!
Wenn ich auslesen möchte, also Datenübertragen bekomme ich immer den wert 255 würde mich sehr freuen wenn mir jemand helfen würde.
Mit freundlichen Grüßen




$regfile = "m32def.dat" 'definieren des verwendeten Chips
$crystal = 8000000 'Quarz 8MHz
$baud = 9600


'--------- Eeprom Anschlüße ------
Config Sda = Portc.1 'SDA und SCL definieren
Config Scl = Portc.0

'--------- Temperatursensor DS1821 --------------

Config 1wire = Porta.0 'DS1821 DQ an PD6


'================================================= =============================


Dim Ar As Byte 'Variablenname und Typ festlegen
Dim Temperatur As Integer , Temperatur_lesen As Integer
Dim I As Integer , Z As Integer
Dim Adrcount As Word , H As Byte , L As Byte , Wert As Byte
Dim Adrcount_lesen As Word , H_lesen As Byte , L_lesen As Byte


Do

'---- Temperatur Routine ----

1wreset 'Reset DS1821
1wwrite &HEE 'starte Temperaturkonvertierung
Waitms 100 'warte 100 Millisekunden
1wreset 'Reset DS1821
1wwrite &HAA 'DS1821 sende Daten an Atmel
Ar = 1wread() 'lesen die empfangenen Daten
1wwrite &H22 'stop Temperaturkonvertierung
Temperatur = Ar 'Temperatur übergeben



'---- schreibe in EEprom ----
H = High(adrcount)
L = Adrcount
I2cstart 'Start I2C
I2cwbyte Adr
I2cwbyte H 'Speicherstelle im Eeprom
I2cwbyte L
I2cwbyte Temperatur 'Sende Wert
Print "Schreibe " ; Temperatur ; " Grad ins Eeprom"
I2cstop 'Stop I2C

If Adrcount < &H7FEB Then Adrcount = Adrcount + 1 Else Adrcount = 0 'Prüfen ob Speicher voll ist? Wenn nicht 1 hochzählen oder bei 0 wieder anfangen
Gosub Zeitschleife


Loop



'---- Zeitschleife 30Min ----

Zeitschleife:
'ungefähr 1Min Zeitschleife
For I = 0 To 59
If Pina.1 = 1 Then
Adrcount_lesen = &H0000
Gosub Datenuebertragung 'Über RS232 Daten vom Eeprom ans Terminalprogramm senden
End If
Print "Warte 1 sec."
Wait 1
Next I
Return



'--- lesen vom EEprom bzw. Auslesen über RS232 aufs Teminal Programm ----

Datenuebertragung:
Schleife:
If Adrcount > Adrcount_lesen Then

H_lesen = High(adrcount_lesen)
L_lesen = Adrcount_lesen
I2cstart 'Start I2C
I2cwbyte &HA0 'sende Slave Adresse
I2cwbyte H_lesen 'sende Speicheradresse High
I2cwbyte L_lesen 'sende Speicheradresse Low

I2cstart 'Start I2C
I2cwbyte &HA1 'sende Slave Adresse +1 für schreiben
I2crbyte Temperatur_lesen , Nack 'lese Adresse vom EEprom
I2cstop 'Stop I2C
Waitms 10 'warte 10ms
Print Temperatur_lesen ; " C"
Print Chr(13)

Adrcount_lesen = Adrcount_lesen + 1
Gosub Schleife
Else
Print "Übertragung beendet"
End If

Return
End