Witam, zacząłem pisać własną bibliotekę do w.w. expandera MCP. Otóż mam wielki problem z połączeniem układ nie reaguje. Ale zacznijmy od fundamentów..
A0=A1 -> podłączone do VCC, A2 -> GND więc ustawiłem adres jako 0x43h . Następnie podłączyłem diody poprzez rezystor 220om do portu A. W programie wykorzystuje "Mirkową" bibliotekę do obsługi I2C. W inicjalizacji ustawiam port A jako wyjście poprzez zapisanie do rejestru IODIRA wartości 0x00h, następnie na połowie portu ustawiam stan wysoki, na drugiej połowie niski (czyli teoretycznie 4 diody się zapalają, a 4 są zgaszone). W tym celu zmieniam rejestr GPIOA na wartość 0xF0h.
Sercem jest ATmega328p do której również podłączony jest LCD2x16 też przez I2C o adresie 0x40h który działa. Dodatkowo przy expanderze dołożyłem 2x 4.7k om dla linii SDA i SCL choć już te linie są podciągnięte na adapterze przy LCD.
Gdzie może być bubel i czym się różnią 2 rejestry GPIOx i OLATx wg. mnie przy zapisie działają tak samo a przy odczycie? Pozdrawiam
Ciało funkcji inicjalizującej
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.