Witam.
Kupiłem (z mojego chorego nawyku oszczędzania) zegarek
MCP7940N i postanowiłem podłączyć go do ATMegi16. Podłączenie jest dobre (schemat wg ds.). Kompletnie nie wiem jak odczytać i zapisać czas do zegara.
Kod jest następujący:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Teraz trochę wyjaśnienia: funkcja LCD_WriteInt() działa dobrze, nie trzeba nic w niej zmieniać, a I2C_start, -write i -read_ack są "zapożyczone z Internetu":
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Do RTCC docierają dane, ponieważ funkcje zwracają 0, gdy odłączę układ zwracają 1. Na wyświetlaczu wyświetlają mi się cztery zera, zamiast trzech zer i sekund. Adres odczytu układu MCP to 11011111 a wysyłania to 11011110.
Może ktoś pomoże jak to zrobić? W sumie to pierwszy raz mam styczność z TWI i po przeczytaniu Datasheetu ATMegi i RTCC nie jestem już pewien jak ma wyglądać schemat transmisji czasu do ATMegi. Ja rozumiem to tak:
1. Wysłanie START.
2. Wysłanie adresu RTCC tak, aby mógł odebrać dane.
3. Wysłanie numeru komórki pamięci.
4. Wysłanie adresu RTCC tak, aby mógł wysyłać dane.
5. Odebranie danych. (ale chyba nie z użyciem ack

)
6. Wysłanie STOP.