Z racji tego, iż to mój pierwszy post na forum, pragnę w pierwszej kolejności wszystkich serdecznie powitać

. Przechodząc do meritum sprawy: od dłuższego czasu pracuję nad projektem testera diagnostycznego opartego na scalaku STN1110 - odpowiednik ELM327 se strony software'owej (te same komendy AT, OBD etc.). Układ współpracuje z uC ATMega32, która komunikuje się z STNem poprzez UART. Całość sterowana jest czterema przyciskami microswitch a dane odebrane z pojazdu wyswietlane na wyświetlaczu LCD 4x16. Środowisko programistyczne to Eclipse - język C. W programie wykorzystuję biblioteki zarówno z Bluebooka (LCD, Superdebounce) jak i z greenbooka (UART oraz zmodyfikowane przezemnie funkcje parsujące). Cały program opiera się na wysyłaniu odpowiednich zapytań do STNa, który to komunikuje się z ECU samochodu i zwraca odpowiednie dane, które następnie podlegają parsowaniu i wyswietlaniu na LCD. Problem pojawia się kiedy wysyłam zapytania o więcej niż jedną wartość. Np. chcę wyświetlać na LCD 4 wartości: temp. cieczy chłodzącej, obroty silnika, prędkość pojazdu oraz obciążenie odświeżając każdą wartość cyklicznie (narazie w pętli głównej while). Niżej kod:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Na diodach sygnalizujących komunikację pomiędzy Atmegą a STNem oraz STNem a ECU samochodu widać komunikację pomiędzy poszczególnymi układami. Niestety nie widać żadnej wartości wyświetlanej na LCD. Natomiast jeśli wysyłam każde zapytanie poprzez przyciśnięcie innego przycisku (4 przyciski na 4 wartości) z funkcji superdebounce to wszystko ładnie się wyświetla (oczywiście jednorazowo bez odświeżania wartości). Moje pytanie brzmi, czy problemem w tej sytuacji są linie programu oczekujące na znak gotowości:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
, które to prowadzą do zatrzymania programu? Jeśli tak to jak można by było obejść owy problem??
Za wszelkie porady serdecznie dziękuję
