Znaczy nie chciałem, żebyście zgadywali. Najpierw wolałem się dowiedzieć tego o co zapytałem. Błąd znalazłem (ale czy jedyny), ale nie mam pomysłu jak go naprawić żeby wszystko działało zgodnie z moim zamysłem.
No to teraz moja koncepcja i dane projektu: kwarc 7.372800MHz, z pc komunikuję się przez RS232 i konwerter MAX232. Program ma służyć do komunikacji z aplikacją na pc i zbierania pomiarów z czujników temperatury ds18b20. Użytkownik z komputera wysyła odpowiedni rozkaz, a ja go przetwarzam i odsyłam mu odpowiedź. Ramka danych przesyłanych z pc wygląda następująco: <liczba bajtów ramki> <rozkaz> <opcjonalne bajty w zależności od rozkazu>. Problem napotkałem między innymi w momencie gdy z pc wysyałełm 2 bajty (0x01, 0x02) co odpowiada ustalonej reakcji na taką wiadomość, ale za nim program zdążył odebrać 2 bajt, na ekranie komputera pojawiał się 0xFF, który w zasadzie nie miał prawa zostać wysłany.
Co do odbioru to wiem że problem może leżeć, gdy zaczynam kopiować wiadomość i na ten czas wyłączam przerwania, tylko nie mam pomysłu jak to naprawić.
Obsługa USART.
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Główna pętla programu.
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.