placasoft
27.01.2008, 14:49
Hey,
hab seit monaten meine MiniControl wieder rausgekrammt, da ich jetzt wieder Verwendung dafür habe.
Ich hab mir kurz einen Code zum auslesen des DS1621 über i2c geladen und drauf geflasht! Komischer weiße sind bei mir aber low und high temp immer 255. Der DS1621 ging aufjeden fall damals, hab auch nichts an der Verlötung geändert, an was kann das liegen?
Hier der Code :
$regfile = "m168def.dat"
$crystal = 16000000
$baud = 9600
$hwstack = 32
$framesize = 32
$swstack = 32
$lib "i2c_twi.lbx" ' we do not use software emulated I2C but the TWI
Config Scl = Portc.5 ' we need to provide the SCL pin name
Config Sda = Portc.4 ' we need to provide the SDA pin name
I2cinit ' we need to set the pins in the proper state
Config Twi = 100000 ' wanted clock frequency
'will set TWBR and TWSR
'Twbr = 12 'bit rate register
'Twsr = 0 'pre scaler bits
Dim T As Word
Declare Sub Readtemp
Do
Call Readtemp()
Loop
End
Sub Readtemp(byval Device As Byte)
Local Deviceread As Byte
Local Lowtemp As Byte
Local Hightemp As Byte
Deviceread = Device + 1
'I2csend , Device , &HEE 'kürzere Source, längerer Code
I2cstart
I2cwbyte Device
I2cwbyte &HEE 'Temperaturmessung anstoßen
I2cstop
'I2csend , Device , &HAA 'kürzere Source, längerer Code
I2cstart
I2cwbyte Device
I2cwbyte &HAA 'Temperaturmessung Lesekommando
I2cstop
I2cstart
I2cwbyte Deviceread
I2crbyte Lowtemp , Ack 'LSByte holen
I2crbyte Hightemp , Nack 'MSByte holen
I2cstop
Value = Lowtemp * 10
If Hightemp = 128 Then
Value = Value + 5
End If
Print Value
End Sub
Jetzt schon mal danke für eure Hilfe!
MfG
Placa
hab seit monaten meine MiniControl wieder rausgekrammt, da ich jetzt wieder Verwendung dafür habe.
Ich hab mir kurz einen Code zum auslesen des DS1621 über i2c geladen und drauf geflasht! Komischer weiße sind bei mir aber low und high temp immer 255. Der DS1621 ging aufjeden fall damals, hab auch nichts an der Verlötung geändert, an was kann das liegen?
Hier der Code :
$regfile = "m168def.dat"
$crystal = 16000000
$baud = 9600
$hwstack = 32
$framesize = 32
$swstack = 32
$lib "i2c_twi.lbx" ' we do not use software emulated I2C but the TWI
Config Scl = Portc.5 ' we need to provide the SCL pin name
Config Sda = Portc.4 ' we need to provide the SDA pin name
I2cinit ' we need to set the pins in the proper state
Config Twi = 100000 ' wanted clock frequency
'will set TWBR and TWSR
'Twbr = 12 'bit rate register
'Twsr = 0 'pre scaler bits
Dim T As Word
Declare Sub Readtemp
Do
Call Readtemp()
Loop
End
Sub Readtemp(byval Device As Byte)
Local Deviceread As Byte
Local Lowtemp As Byte
Local Hightemp As Byte
Deviceread = Device + 1
'I2csend , Device , &HEE 'kürzere Source, längerer Code
I2cstart
I2cwbyte Device
I2cwbyte &HEE 'Temperaturmessung anstoßen
I2cstop
'I2csend , Device , &HAA 'kürzere Source, längerer Code
I2cstart
I2cwbyte Device
I2cwbyte &HAA 'Temperaturmessung Lesekommando
I2cstop
I2cstart
I2cwbyte Deviceread
I2crbyte Lowtemp , Ack 'LSByte holen
I2crbyte Hightemp , Nack 'MSByte holen
I2cstop
Value = Lowtemp * 10
If Hightemp = 128 Then
Value = Value + 5
End If
Print Value
End Sub
Jetzt schon mal danke für eure Hilfe!
MfG
Placa