Cześć!
Wpadł mi w ręce czujnik temperatury i ciśnienia BMP180 i postanowiłem zrobić z niego użytek. A że należy go obsługiwać przez I2C, a nie miałem z tym standardem do czynienia, to wziąłem się za pisanie własnej biblioteki obsługującej I2C. Oczywiście zadanie nie jest proste i już natknąłem się na problem, ale mam nadzieję, że z waszą pomocą się uda.
A problem jest taki, że ATmega nie odczytuje danych. Wiem że potrafi poprawnie wysłać dane, bo czujnik reaguje na swój adres - wysyła potwierdzenie tak jak powinien. Na przypadkowy adres nie reaguje, a na swój owszem, więc myslę że wysyłanie danych jest ok
Gorzej jeśli chodzi o odbiór. Coś jest ewidentnie nie tak. Odbiera albo wszystkie 8 bitów jako 1, albo wszystkie jako 0. Co ciekawe atmega programowana co drugi raz wyświetla inny wynik - raz 0, raz 225.
Pewnie chodzi o jakiś głupi błąd, ale wprawne oko w moment go wyłapie. Proszę też o wyrozumiałość, bo z C bawię się dopiero kilka dni, dotychczas uzywałem bascoma, jednak demo okazało się niewystarczające do moich celów.
Poniżej kod i opisuję przy felernej procedurze co autor miał na mysli
Zaznaczę że podciągnąłem SDA i SCL rezystorami do Vcc,
Proszę o pomoc i pozdrawiam.[/code]
Wpadł mi w ręce czujnik temperatury i ciśnienia BMP180 i postanowiłem zrobić z niego użytek. A że należy go obsługiwać przez I2C, a nie miałem z tym standardem do czynienia, to wziąłem się za pisanie własnej biblioteki obsługującej I2C. Oczywiście zadanie nie jest proste i już natknąłem się na problem, ale mam nadzieję, że z waszą pomocą się uda.
A problem jest taki, że ATmega nie odczytuje danych. Wiem że potrafi poprawnie wysłać dane, bo czujnik reaguje na swój adres - wysyła potwierdzenie tak jak powinien. Na przypadkowy adres nie reaguje, a na swój owszem, więc myslę że wysyłanie danych jest ok
Gorzej jeśli chodzi o odbiór. Coś jest ewidentnie nie tak. Odbiera albo wszystkie 8 bitów jako 1, albo wszystkie jako 0. Co ciekawe atmega programowana co drugi raz wyświetla inny wynik - raz 0, raz 225.
Pewnie chodzi o jakiś głupi błąd, ale wprawne oko w moment go wyłapie. Proszę też o wyrozumiałość, bo z C bawię się dopiero kilka dni, dotychczas uzywałem bascoma, jednak demo okazało się niewystarczające do moich celów.
Poniżej kod i opisuję przy felernej procedurze co autor miał na mysli
Kod: C / C++
Zaznaczę że podciągnąłem SDA i SCL rezystorami do Vcc,
Proszę o pomoc i pozdrawiam.[/code]