Usiłuję dogadać się z czujnikiem MPL3115A2. Niestety problem mam chyba już na etapie samej komunikacji I2C. W swoich bojach wykorzystuję (a przynamniej próbuję) bibliotekę z BB do komunikacji I2C, ale może po kolei.
Sprzętowo mam wszystko ok. sprawdziłem programem z Arduino. Czujnik ładnie dogaduje się z procesorem wysyłając na terminal ciśnienie, wysokość oraz temperaturę.
Chciałem, wzorem Mirka poradników oprzeć się na bibliotece z wspomnianego wyżej Arduino, ale w pewnym momencie odniosłem wrażenie, że czytam Dziennik Ustaw. W pliku z funkcjami do obsługi MPL3115A2 jest załączony plik obsługi I2C. Z kolei w pliku I2C dołączony jest kolejny z kolejnymi funkcjami a następnie kolejny itd. Z Arduino jestem kompletnie zielony, i po wyrwaniu połowy włosów odpuściłem ten kierunek.
Ponownie zacząłem studiować dokumentację do samego czujnika MPL31115A2. Po kilkunastu godzinach przyzwyczajania się do treści wydawało mi się, że coś zaczynam rozumieć. Więc zbudowałem prosty main wzorem grafu z dokumentacji, no i klapa.
Stosując „debag” diodą led doszedłem do wniosku, że problem leży już na etapie wysyłania komunikatów na szynę I2C.
Proszę o podpowiedź, o co chodzi w poniższej funkcji?
Co to jest „IICC_MST = 1;” i to „IICS_BUSY” i po co jest „error |= 0x01;”
Rozumiem, że „IICC_MST = 1;” to przypisanie zmiennej IICC_MST wartości 1, ale po co? Chyba mi czegoś brakuje, w/w zmienne są chyba globalnymi zmiennymi.
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Powyższy kod jest z pdf-a AN4481, obsługa czujnika MPL3115A2 jest z AN4519 obydwa pdf-y w załączniku.
Chyba się zapętliłem w swoich rozważaniach, proszę o podpowiedź. Od trzech dni siedzę nad tematem i nie drgnąłem z miejsca.