hallo,

so, den sensor habe ich zum reden gebracht... =D>

hier der funktionierende code
Code:
'Diese Anweisung setzt die Fusebits automatisch korrekt (Syntax $PROG LB, FB , FBH , FBX )
$prog , 255 , &B11011001 ,                                  'Quarz an / Teiler aus / Jtag aus

$regfile = "m2560def.dat"
$hwstack = 82                                               '80
$framesize = 68                                             ' 64
$swstack = 68                                               '44

$crystal = 16000000                                         'Quarzfrequenz


Config Pine.5 = Input
USB Alias Pine.5                                            'Ist 1 wenn USB angeschlossen

Config Com4 = 9600 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
Open "com4:" For Binary As #4                               'USB Buchse

'-------------------------------------------------------------------------------

$lib "i2c_twi.lbx"                                          ' Für Hardware TWI

Config Twi = 400000                                         ' Init TWBR und TWSR

' TWI gleich einschalten, das macht Bascom ansonsten erst beim I2CStart !
Twcr = Twen

Waitms 500

Config Scl = Portd.0                                        ' Ports fuer IIC-Bus
Config Sda = Portd.1

'Config I2cdelay = 100                                       ' je höher der Wert umso langsamer der Bus
' 10 ergibt ca. 100kHz (sollte zumindest)

I2cinit

Const Ds1621w = &H90
Const Ds1621r = &H91

Dim Lowtemp As Byte
Dim Hightemp As Byte


    ' Messen anstossen
    I2csend Ds1621w , &HEE
    I2cstart
    I2cwbyte Ds1621w
    I2cwbyte &HEE
    I2cstop

    If Err = 1 Then Print #4 , "I2C-Err11111 "

Do
    ' der DS1621 braucht mind. 400ms zum Temperatur umwandeln !
    Waitms 500
    ' Wert auslesen
    I2cstart
    I2cwbyte Ds1621w
    I2cwbyte &HAA
    I2cstart
    I2cwbyte Ds1621r
    I2crbyte Lowtemp , Ack
    I2crbyte Hightemp , Nack
    I2cstop

    'Print #4 , "low1: " ; Lowtemp
    'Print #4 , "high1 :" ; Hightemp

    If Err = 0 Then
        ' Negativer Wert ?
        If Lowtemp.7 = 1 Then
            Lowtemp = Not Lowtemp
            If &H80 > Hightemp Then
                Incr Lowtemp
            End If
           ' Print #4 , "-" ; Lowtemp.7
        Else
            'Print #4 , "+" ; Lowtemp.7
        End If

        Print #4 , "temp:" ; Lowtemp ; "," ;

        If Hightemp = &H80 Then
            Print #4 , "5"
        Else
            Print #4 , "0"
        End If
    Else
        Print #4 , "I2C-Err ! "
    End If

    Wait 60

Loop


End
die temperaturmessungen werden im bascom-terminalfenster mit 0.5 grad genauigkeit angezeigt. da gibt es ja noch eine möglichkeit, die auflösung des temperaturwertes noch auf stellen hinter dem komma zu erhöhen.
das habe ich bis jetzt aber leider noch nicht verstanden.
ist aber nicht so schlimm, erstmal reichen die 0.5 grad.

ich möchte nun gerne die temperaturwerte zur späteren auswertung speichern. in einer logdatei oder anders. wie muss ich da ansetzen?
welche möglichkeiten gibt es, die vom chip erhaltenen daten zu speichern?

vielen dank für eure hilfe.
ciao, edgar