Szanowni Koledzy, jestem początkującym i próbuję napisać wydawałoby się prosty program, który ma za zadanie odebrać dane z jakiegoś urządzenia, łańcuch max 500 znaków (przeznaczony na drukarkę) i wysłać to samo, ale 2 razy na drukarkę. Używam ATmegi 8, port Rx odbiera dane bezpośrednio z innego procka, a port Tx wysyła to 2 razy na drukarkę, tak to sobie wymyśliłem. Korzystam z biblioteki
MKUART z niebieskiej książki.
Proste, a jednak okazuje się, że jak znam ilość odebranych znaków
„listing 1” to wszystko działa poprawnie, ale gdy ich nie znam
„listing 2”to w 1 części wydruku program dopisuje na początku część znaków będących początkiem wydruku, a w 2 części wydruku (kopii) tyle samo znaków na początku zabiera. Liczba dodanych znaków zależy od długości bufora TX, im większy bufor tym więcej znaków. W przypadku, kiedy w linii
„uart_putc(Znak);” postawię komentarz
„listing 3”, to instrukcja if działa właściwie. Próbuję na różne sposoby i sam już nie wiem jak mam sprawdzić kiedy następuje koniec odebranych danych, żeby można było wysłać 2 część. Proszę o pomoc.
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.