Witam serdecznie,
jak już można było zorientować się z tematu postu, buduję urządzenie do zdalnego pomiaru temperatury termoparą typu K podpiętą do MAX6675. Układ zaprojektowany, wykonany i przetestowany wraz z mega32. Docelowo uC zmieniony będzie na mniej prądożerny, bo układ zasilany będzie z baterii. Napisałem sobie do testów kawałek kodu, który na piechotę steruje SPI. Odczyt na oscyloskopie i analizatorze stanów logicznych potwierdza poprawność konstrukcji - temperatury porównywane z urządzeniem wyższym o klasę... parę klas
są praktycznie identyczne w interesującym mnie zakresie.
Kolejnym krokiem było zaimplementowanie dużo bardziej eleganckiej biblioteki SPI zakupionej w ATNEL. Po obejrzeniu poradników Mirka utwierdziłem się w tym, że jest to bardzo dobry wybór.
Na tą chwilę - na szybko - skorzystałem tylko z jednej funkji w głównej pętli programu:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Ponownie sprawdziłem przebiegi, głównie pod kątem odbioru 16 bitów danych. Wszystko działa poprawnie.
No i teraz mam prośbę o pomoc. Chciałbym te dane, trochę "obrobić" - wyrzucić niepotrzebne bity, z pozostałych wyliczyć zmierzoną temperaturę i wyprowadzić na USART (podpięta LoRa).
Ponieważ słaby ze mnie programista, nie do końca rozumiem, co znajduje się w 'buf1' (8 czy 16 bitów?), bo rejestr SPI jest ośmiobitowy.
Kolejne moje pytanie, to jak operować na odczytanych danych (np. przesunięcia bitowe w celu pozbycia się wspomnianych kilku bitów i wyliczenie wartości (dec) temperatury).
Oczywiście chodzi mi o podpowiedzi koncepcyjne, a nie gotowe kody, bo chciałbym się czegoś nauczyć
Chciałbym pisać kod małymi kroczkami, aż do zrealizowania całego projektu, więc ten post może dosyć długo się ciągnąć, ale mam nadzieję, że może wtedy pomóc innym raczkującym.
Pozdrawiam licząc na zrozumienie moich braków wiedzy i nie zawsze precyzyjnie zadane pytania