Witam mam expander PCF8574 połączony z uC Atmega8
Przy zapisie bajtu do układu wszystko jest OK.
Problem występuje gdy chcę odczytać stan wszystkich 8 portów układu PCF8574.
Gdy czytam dane i żaden port nie jest zwarty z masą to otrzymuje wartość 0xFF czyli same jedynki logiczne.
Mogę zwierać dowolne nóżki do masy i wszystko działa ale gdy zewrę nóżkę P7 (IO7) z masą i nastąpi czytanie danych cały program się zatrzymuje komplety brak reakcji. Jedyna pomoc do reset uC ale nie odłączam nic od zasilania.
Dane wysyłam przez port szeregowy
Jak widać dla pewności wysyłam jeszcze wartość jakiej się powinienem spodziewać temp=0x7F; po zwarciu nóżki P7 z masą i działa.
Chcę jeszcze dodać że uC się nie zawiesza bo odsyła dane jakie wysyłam do niego przez port szeregowy. Wygląda jak by zawieszał się sam moduł I2C.
Przy zapisie bajtu do układu wszystko jest OK.
Problem występuje gdy chcę odczytać stan wszystkich 8 portów układu PCF8574.
Gdy czytam dane i żaden port nie jest zwarty z masą to otrzymuje wartość 0xFF czyli same jedynki logiczne.
Mogę zwierać dowolne nóżki do masy i wszystko działa ale gdy zewrę nóżkę P7 (IO7) z masą i nastąpi czytanie danych cały program się zatrzymuje komplety brak reakcji. Jedyna pomoc do reset uC ale nie odłączam nic od zasilania.
Dane wysyłam przez port szeregowy
START_TWI();
WRITE_TWI(0x71);
temp=READ_TWI(1);
STOP_TWI();
itoa(temp,wyslij,2);
nadajstring(wyslij);//w tym miejscu wysyłam dane przez rs232
temp=0x7F;
itoa(temp,wyslij,2);
nadajstring(wyslij);//w tym miejscu wysyłam dane przez rs232Jak widać dla pewności wysyłam jeszcze wartość jakiej się powinienem spodziewać temp=0x7F; po zwarciu nóżki P7 z masą i działa.
Chcę jeszcze dodać że uC się nie zawiesza bo odsyła dane jakie wysyłam do niego przez port szeregowy. Wygląda jak by zawieszał się sam moduł I2C.
