nixie napisał(a):
Wielkie dzięki. Uruchomiłem tę bibliotekę.
Dzieje się coś dziwniejszego, niż myślałem. Dostaję tą samą, dziwną wartość co ostatnio (w tym momencie jest to 32763). Jest wysoce mało prawdopodobne, że obydwie biblioteki mają ten sam błąd, w dodatku tego kalibru. Musiałem się pomylić w innym miejscu.
Procedura wysyłania danych wygląda w tej chwili następująco:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Powyższy fragment kodu mieści się wewnątrz procedury obsługującej wystąpienie konkretnej komendy AT.
Wskaźnik do łańcuch pAnswer jest przekazywany na zewnątrz, gdzie przejmuje go procedura zajmująca się odsyłaniem odpowiedzi na zapytania UDP.
Czy widać tutaj coś, co mogłoby przekłamywać wynik?
lukanio napisał(a):
Podaj cały kod main.c bo z tego co podałeś nic nie wynika.
Aby odczytać wartość ciśnienia z tego czujnika trzeba najpierw pobrać kilka parametrów kalibracyjnych, następnie pobrać nieskalibrowaną wartość ciśnienia a następnie ją skalibrować.
Od tego zwykle w bibliotekach jest osobna funkcja, którą albo umieszcza się na początku programu w pliku main.c (ja tak robiłem) albo wchodzi ona w skład jakiejś większej funkcji inicjującej, którą tak czy inaczej wywoływałem przy starcie programu. Raczej nie tu leży źródło problemu...
UPDATESpróbowałem jeszcze użyć następującej konstrukcji do wysyłania wyniku:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Kończą mi się pomysły co do tego, gdzie szukać przyczyny...
Ktoś ma jakąś teorię, albo chociaż pomysł co mógłbym sprawdzić w następnej kolejności?
Zrobiłem jeszcze jeden test. Stworzyłem unię złożoną ze zmiennej int32_t oraz tablicy uint8_t, złożonej z czterech elementów.
Do zmiennej int32_t zapisałem wynik działania funkcji bmp085_getpressure.
Następnie wykonałem operację memcpy(pAnswer, unia.zmienna_tablicowa, 4). Jedno miejsce wyżej w pAnswer zapisałem 0. Wynik wysłałem do komputera w pakiecie UDP.
Przyszło coś takiego (hex): C0 7F 01.