Éleszteni próbálom ezt az IC-t, de a tizedes kijelzésem nem működik, nyilván triviális hibából adódóan, de nem találom a megoldást a help-ben sem.
Megnéznétek a kódomat, és kijavítanátok ahol szükséges.
Kód: Egész kijelölése
$regfile = "m128def.dat"
$crystal = 1000000
'lcd
Config Lcdpin = Pin , Db4 = Portc.4 , Db5 = Portc.5 , Db6 = Portc.6 , Db7 = Portc.7 , E = Portb.4 , Rs = Portb.2
Config Lcd = 16 * 2
Cursor Off
Cls
Declare Sub Kiir
'i2c config
Config Sda = Portd.1
Config Scl = Portd.0
'Config I2cdelay = 100
Const Tmp275w = &H90
Const Tmp275r = &H91
Dim Temphi As Byte
Dim Templo As Byte
Dim Templow As Long
'i2c init
I2cstart
I2cwbyte Tmp275w
I2cwbyte &B00000001 'Pointer regiszter beállítás - Configuration Register (P1-0, P0-1, WRITE)
I2cwbyte &B01100100 'Felbontás 12bit(OS=0,R1=1,R0=1,F1=0,F0=0,POL=1,TM=0,SD=0)
I2cstop
Do
I2cstart
I2cwbyte Tmp275w
I2cwbyte &B00000000 'Pointer regiszter kiválasztás - Temperature Register (P1-0, P0-0, Read Only)
I2cstart
I2cwbyte Tmp275r
I2crbyte Temphi , Ack
I2crbyte Templo , Nack
I2cstop
'12 bites felbontásnál, 1 bit 0.0625°C-nak felel meg.
Templow = Templo 'Adat áttöltése long változóba, mert csak byteba olvasható
Templow = Templow * 625 'Érték * 625
Templow = Templow / 10000 'Érték / 10000
Goto Kiir
Loop
End
Kiir:
Waitms 100
Upperline
Lcd Temphi
Lowerline
Lcd Templo ; " " ; Templow 'Kiolvasott érték, Konvertált érték
Waitms 100
Return