Witam!Buduje zegar elektroniczny i mam problem z polaczeniem AT89S8252 z ukladem PCF8583.
pisze taki krutki programik:
$crystal = 11059200
Config Lcd = 16 * 2
Config Lcdpin = Pin , Rs = P2.5 , E = P2.4 , Db4 = P2.3 , Db5 = P2.2 , Db6 = P2.1 , Db7 = P2.0
Config Sda = P3.4
Config Scl = P3.5
Cls
Cursor Off
Dim Sekundy As Byte
Dim Minuty As Byte
Dim Godziny As Byte
Dim Dni As Byte
Dim Miesiace As Byte
Declare Sub Odczytaj_dane
Do
Cls
Call Odczytaj_dane
Lcd "Godzina "
Lcd Godziny
Lcd ":"
Lcd Minuty
Lcd ":"
Lcd Sekundy
Loop
Sub Odczytaj_dane
I2cstart
I2cwbyte 162
I2cwbyte 2
I2cstart
I2cwbyte 163
I2crbyte Sekundy , Ack
I2crbyte Minuty , Ack
I2crbyte Godziny , Ack
I2crbyte Dni , Ack
I2crbyte Miesiace , Nack
I2cstop
Sekundy = Makedec(sekundy)
Minuty = Makedec(minuty)
Godziny = Makedec(godziny)
Dni = Makedec(dni)
Miesiace = Makedec(miesiace)
End Sub
End
i na wyswietlaczu pojawia mi sie napis - Godzina 165:165
Co moge z tym zrobic? Pomocy!!
Aktyw Forum
Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.
Sprawdź punkty Zarejestruj sięProblem z I2C
Moderatorzy:Jacek Bogusz, robertw, k.pawliczak, Moderatorzy
Program jest na moje oko ok. Trzeba więc po kolei sprawdzić komunikację uP z peryferiami (PCFem i LCD). Proponuję zaremować Odczytaj_dane i wpisać, przed Do, do zmiennych (godzina ,minuta , sekunda) jakieś normalne wartości. Pozwoli to sprawdzić czy między LCD a uP jest wszystko jak należy. Jeśli jest to znaczy, że problem leży w PCFie. Najpierw sprawdził bym czy procek wogóle widzi ten układ, za pomocą programiku wyszukującego urządzenia na I2C. Jeśli tak to trzeba spróbować coś odzytać, np. jeden rejestr i wyswietlić. Sprawdziłbym też czy te Makedec działają poprawnie.
A tak wogóle to teraz patrzę, że End jest nie tam gdzie powinno jak dobrze pamiętam to End stawiamy po programie głównym (przed procedurami).
A tak wogóle to teraz patrzę, że End jest nie tam gdzie powinno jak dobrze pamiętam to End stawiamy po programie głównym (przed procedurami).
czy to znaczy że ci już chodzi?? port P0 niema wewnętrznych rezystorów natomiast P3 ma i nie muszą być.
Druga sprawa to nie męcz tak ciągle wyświetlacza w pętli instrukcją CLS.
Jak nadal ci nie chodzi to wpierw zapisz tam jakiś czas i przeczytaj czy niema czegoś takiego jak uruchomienie zegara (rejestry PCF'a).
Ja używam DS1307 ma zegar na 99 lat a nie na 4.
i używaj małego kwarca zegarkowego (walec), bo ten duży chyba spalił mi układ - wiem że już nie ruszył.
Druga sprawa to nie męcz tak ciągle wyświetlacza w pętli instrukcją CLS.
Jak nadal ci nie chodzi to wpierw zapisz tam jakiś czas i przeczytaj czy niema czegoś takiego jak uruchomienie zegara (rejestry PCF'a).
Ja używam DS1307 ma zegar na 99 lat a nie na 4.
i używaj małego kwarca zegarkowego (walec), bo ten duży chyba spalił mi układ - wiem że już nie ruszył.
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 2 gości