PCF8563 lekérdezésekor ha a nap változik az év is nő. Hogyan kell lekérdezni helyesen?
prg. részlet:
Dim Second As Byte , Minute As Byte , Hour As Byte , Day As Byte , Month As Byte , Year As Byte
....
Gettime:
For I = 1 To 7
Temp = I + 1
I2cstart
I2cwbyte &HA2
I2cwbyte Temp
I2cstart
I2cwbyte &HA3
I2crbyte Tm(i) , Nack
Next
I2cstop
'DateTime
Dim Temp As Byte , I As Byte , Tm(6) As Byte , Answer As String * 1
Dim Second As Byte , Minute As Byte , Hour As Byte , Day As Byte , Month As Byte , Year As Byte
Gosub Gettime
Do
Print
Cls
Print " 1 - Dátum és idő beállítás"
Print " 2 - Dátum és idő lekérdezés"
Input "Menü sorszám: " , Menu
Print
Select Case Menu
Case 1 : Gosub Settime
Case 2 : Gosub Gettime
End Select
Loop
End
Settime:
Input "Év utolsó két számjegye: " , Year
Input "Hónap:" , Month
Input "Nap: " , Day
Input "Óra: " , Hour
Input "Perc: " , Minute
Input "Másodperc: " , Second
I2cstart 'generate start
I2cwbyte &HA2 'write address, PCF: &HA0
I2cwbyte 0 'select control register
I2cwbyte 8 'set year and day bit for masking
I2cstart 'repeated start
I2cwbyte &HA2 'write mode , PCF: &HA0
I2cwbyte 2 'select seconds Register
For I = 1 To 7
I2cwbyte Tm(i)
Next 'write time
I2cstop
Return
Gettime:
For I = 1 To 7
Temp = I + 1
I2cstart
I2cwbyte &HA2 'write addres of PCF8583 , PCF: &HA0
I2cwbyte Temp 'select register
I2cstart 'repeated start
I2cwbyte &HA3 'write address for reading info , PCF: &HA1
I2crbyte Tm(i) , Nack 'read data
Next
I2cstop
Bocs, PCF8583-ról beszélünk.
Sajnos egyik ajánlás alapján sem működik, vagyis hónapváltásnál az év is ugrik, hiába vettem ki a tömbből.
Az eredeti programban csak bekérték az évszám végét (10), és print-nél berakták a beégetett "20" után (2010).