Witam
Chciałem jako element dodatkowy oprócz pomiaru temperatury i zapisu na kartę SD dodać kalendarz z numerem dnia tygodnia ( później zamienić numer dnia na nazwę dnia )
Niestety jakbym nie próbował, to cały czas wyświetla 0.
Odczyt
i zapis
Chyba coś nie do końca rozumiem ideę maskowania lub przesuwania bitów.
Chciałem jako element dodatkowy oprócz pomiaru temperatury i zapisu na kartę SD dodać kalendarz z numerem dnia tygodnia ( później zamienić numer dnia na nazwę dnia )
Niestety jakbym nie próbował, to cały czas wyświetla 0.
Odczyt
Sub Gettime()
I2cstart
I2cwbyte 162 'Wysyła adres odczytu urzadzenia (162 (0xA2) układu PCF8583)
I2cwbyte &H00
I2cwbyte 0 'włącza maskowanie roku i dnia tygodnia
I2cstop
I2cstart
I2cwbyte 162 'Wysyła adres odczytu urzadzenia (162 (0xA2) układu PCF8583)
I2cwbyte &H02
I2cstart
I2cwbyte 163
I2crbyte Ssek , Ack 'Odczytuje sekundy
I2crbyte Mm , Ack 'Odczytuje minuty
I2crbyte Hh , Ack 'Odczytuje godziny
I2crbyte Dday , Ack 'Odczytuje dni
I2crbyte Mmonth , Nack 'Odczutuje miesiąc
I2cstop
S = Makedec(ssek)
M = Makedec(mm) 'Zamiana kodu BCD na wartość dziesiętną
H = Makedec(hh)
'Day = Makedec(dday)
'Month = Makedec(mmonth)
Dzien_tygodnia = Mmonth
Shift Dzien_tygodnia , Right , 5
Dzien_tygodnia = Makedec(dzien_tygodnia)
Czas_pcf = Bcd(hh) + ":" + Bcd(mm) + ":" + Bcd(ssek) 'Tworzenie stringa z czasem
Data_pcf = Bcd(dday) + "/" + Bcd(mmonth) 'Tworzenie stringa z datą
End Sub
i zapis
Sub Settime
'Ssek = Makebcd(s1) 'konwersja sekund
Mm = Makebcd(m1) 'konwersja minut
Hh = Makebcd(h1) 'konwersja godzin
'Dday = Makebcd(d1) 'konwersja dni
'Mmonth = Makebcd(month1) 'konwersja miesięcy
Mmonth = Makebcd(mmonth)
Dzien_tygodnia = Mmonth
Shift Dzien_tygodnia , Left , 5
Mmonth = Dzien_tygodnia Or Mmonth
I2cstart
I2cwbyte 162 'adres zapisu
I2cwbyte 2
I2cwbyte Ssek 'zapis sekund
I2cwbyte Mm 'zapis minut
I2cwbyte Hh 'zapis godzin
I2cwbyte Dday 'zapis dni
I2cwbyte Mmonth 'zapis miesięcy
I2cstop
Waitms 15
End Sub
Chyba coś nie do końca rozumiem ideę maskowania lub przesuwania bitów.