Tutaj masz moją bibliotekę działającą:
topic7033.htmlsprawdź czy z moją biblioteką działa.
Czy Twój program zawiesza się w jakimś miejscu, czy nie?
Jakie cuda pokazuje? Czy się one zmieniają czy są stałe?
Napisz kod do samej obsługi pcf oraz do wyświetlania danych z niego, żeby sprawdzić czy Twój problem jest wynikiem programowym czy sprzętowym,
W Twoim kodzie widziałem, że podczas odczytu czy zapisu danych po I2C nie używasz mniejszych funkcji do odczytu czy zapisu pojedynczego bajtu, oraz funkcji start i stop - taka mała uwaga, bo łatwiej się czyta kod gdy jest on podzielony na funkcje.
Podczas odczytu danych z pcf wykonujesz za każdym razem wysłanie startu, adresu, rejestru, startu, adresu z bitem do odczytu. Wystarczy raz, na samym początku procedury odczytu danych.
Podczas odczytywania kolejnych danych zapomniałeś o wysyłaniu potwierdzenia przez mastera do slave (jeżeli się nie pomyliłem):
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.