Jestem nowym użytkownikiem forum więc na początku witam wszystkich.
Po przeczytaniu niebieskiej książki i przyswojeniu wiedzy teoretycznej postanowiłem napisać pierwszy projekt w c.
Jest to projekt zegara ledowego sterowany przez rejestry szeregowo-równoległe.
Sercem układu jest avr mega8, a zegar RTC PCF8563 z adresem 0xA2 i rezystorami 4,7k pomiędzy SCL - Vcc , SDA - Vcc.
Zewnętrzny rezonator kwarcowy 7372800Hz ustawiony w "Target Hardware" oraz fusebit do pracy z ww rezonatorem.
Układ pracuję już kilka lat , zapisuje oraz czyta dane z PCFa poprawnie z istniejącym wgranym programem napisanym w BASCOM.
fragment kodu odpowiedzialny z wysyłanie oraz odbieranie w BASCOM - wszystko działa OK:
język basic4gl
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Kod C dla tego samego układu sprzętowego [main.c] :
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
i2c_twi.c
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
i2c_twi.h:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Program jest w trakcie budowy i zdaję sobie sprawę , że nie ma jeszcze pełnej obsługi RTC, ale chcę uzyskać na tym etapie
zapisanie do PCFa godziny 12:11:10 w programie napisanym w C.
Następnie wgrać poprzedni program w BASCOM do mega8 i odczytać tę godzinę.
Program się kompiluje, wgrywa do uC, ale do RTC nie wpisuje.
Sprawdzałem na Oscyloskopie i zarówno na SCL jak i na SDA przebiegi są generowane przez sprzętowy TWI zarówno przy BASCOM jak przy C.
Rożnica jest taka, że te przebiegi na oko się różnią, jak będzie potrzeba to załączę zrzuty z oscyloskopu.
dziękuje za pomoc, pozdrawiam