Witam
Od jakiegoś czasu piszę bibliotekę do czujnika MS5541
DS
http://media.digikey.com/pdf/Data%20Sheets/Measurement%20Specialties%20PDFs/MS5541-CM.pdfPisanie zaczynałem od stworzenia zmiennych potem były obliczenia(obliczenia przeprowadzałem na przykładzie z DSa- wszystko obliczane jest prawidłowo) na koniec zostawiłem funkcje do wysyłania i odbierania po SPI i obsługę PWMa odpowiedzialnego za taktowanie czujnika.
Niestety nie mam jak sprawdzić czy dobrze ustawiłem SPI i PWM a doświadczenie moje w tym temacie jest znikome.
Testy z czujnikiem zacząłem wczoraj i natrafiłem na problem z którym sam raczej sobie nie poradzę.
Cały projekt dodaję jako załącznik.
Do wyświetlania wyników używam wyświetlacza z nokii 3310 (SPI)
Biblioteka do niego pochodzi ze strony:
http://www.dharmanitech.com/2008/10/thermometer-design-using-ds1621.htmlPrzerobiłem ją nieco do swoich potrzeb, dodałem funkcję do wyświetlania INTów, i zmieniłem inicjowanie SPI tak by działało jednocześnie z innymi urządzeniami SPI
Niestety program zawiesza się w miejscu:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Wg mnie program zawiesza się w funkcji MS5541_RECIVE() a dokładniej na
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
ale to są tylko moje przypuszczenia.
Zdaję sobie sprawę że babranie się w czyimś kodzie nie jest najprzyjemniejszą rzeczą, więc na początek proszę kogoś o sprawdzenie 3 rzeczy:
1- czy PWM jest odpowiednio ustawiony do generowania częstotliwości 32.768 (nie jest to dokładnie tyle, ale odchyłka jest dopuszczalna) na pinie OC1A (PB1)
2- czy generowanie tej częstotliwości włącza się tak:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
a wyłącza tak:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
3- czy dobrze zrozumiałem przebiegi z DS czujnika i odpowiednio inicjalizuję SPI do wysyłania i odbierania danych z MSa
Myślę że błąd jest gdzieś tutaj i to proponuję sprawdzić najpierw, ale jestem początkujący więc mogę się mylić

Dodam jeszcze że do swojej biblioteki dołożyłem parę dobrych rozwiązań z tej tu:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Pozdrawiam
