Nem akartam új topicot nyitni,mert annyi helyen olvashatok a problémámról, de képtelen vagyok megoldani. Valamit tuti elszúrok. (vagy a progi rossz)
Adott egy mega16 - a későbbi bővíthetőség miatt.
egyenlőre 1db ds1620 (azért ez,mert az LM nincs benne a proteus ISIS-ben és ezzel tesztelek, mivel basic-ben nem sok tapasztalatom van)
és egy 2 soros LCD.
Egyenlőre annak is örülnék, ha 1db hőmérő értékeit le tudnám olvasni.
A program ennyi:
$crystal = 8000000 'Sebesseg
$regfile = "M16def.dat" 'Chip
$baud = 9600
$swstack = 128
$hwstack = 128
$framesize = 40
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.5 , E = Portc.3 , Rs = Portc.2
Declare Sub Homerseklet_olvas
Dim Homerseklet As Byte
Dim Felfok As Byte
Dim Th As Byte
Dim Tl As Byte
Config Sda = Porta.1
Config Scl = Porta.0
Cls
Prog:
Call Homerseklet_olvas
If Felfok = 128 Then Felfok = 5 Else Felfok = 0
Locate 1 , 1
Lcd "**** " ; Homerseklet ; "," ; Felfok ; Chr(0) ; "C" ; " ****"
Goto Prog
End
Sub Homerseklet_olvas
'hőmérést elkezdeni
I2cstart '12c busz start parancs
I2cwbyte &H90 'ds1621 címe
I2cwbyte &HEE 'hőmérést elvégezni parancs
I2cstop 'stop parancs
'-------------
'hőmérsékletet kiolvasni
I2cstart 'i2c start parancs
I2cwbyte &H90 'ds1621 címe
I2cwbyte &HAA 'Hőmérséklet olvasása parancs
I2cstop 'i2c busz stop parancs
I2cstart
I2cwbyte &H91
I2crbyte Homerseklet , Ack 'hőmérséklet
I2crbyte Felfok , Nack '0.5 'C jelzés kiolvasása
I2cstop
End Sub
az I2C ic a0 a1 02 lába alacsony szinten.
a bekőtés így néz ki

Mit rontottam el?
köszönöm![/img]
