Witam,
programuję atmegę32 tak aby otrzymywała polecenia poprzez port RS-232 z komputera (na PC jest skrypt pythona z wykorzystaniem modułu pyserial).
Mój problem polega na tym, że atmega ma otrzymać polecenie w trakcie wykonywania pętli, wysyłam więc 100 razy jedną liczbę w każdym cyklu pętli sprawdzając stan linii RX.
Gdy program wychwyci zmiany na RX robi goto do funkcji odczytującej jedną ze 100 wysłanych identycznych liczb - ta liczba jest właśnie sygnałem który chce przesłać.
Atmega pamięta niestety gdzieś jeszcze dwa egzemplarze tej liczby i jeśli chce przesłać inną to muszę zrobić to trzykrotnie - dwa razy aby nadpisać ten ukryty w czeluściach mikrokontrolera bufor i trzeci raz aby odczytać właściwą liczbę.
Czy istnieje możliwość skasowania zawartości tego bufora? Trafiłem gdzieś w internecie na coś co zwie się UDR, ale nie wiem czy to o to chodzi. Będę wdzięczny za jakąkolwiek sugestię.
programuję atmegę32 tak aby otrzymywała polecenia poprzez port RS-232 z komputera (na PC jest skrypt pythona z wykorzystaniem modułu pyserial).
Mój problem polega na tym, że atmega ma otrzymać polecenie w trakcie wykonywania pętli, wysyłam więc 100 razy jedną liczbę w każdym cyklu pętli sprawdzając stan linii RX.
Gdy program wychwyci zmiany na RX robi goto do funkcji odczytującej jedną ze 100 wysłanych identycznych liczb - ta liczba jest właśnie sygnałem który chce przesłać.
Atmega pamięta niestety gdzieś jeszcze dwa egzemplarze tej liczby i jeśli chce przesłać inną to muszę zrobić to trzykrotnie - dwa razy aby nadpisać ten ukryty w czeluściach mikrokontrolera bufor i trzeci raz aby odczytać właściwą liczbę.
Czy istnieje możliwość skasowania zawartości tego bufora? Trafiłem gdzieś w internecie na coś co zwie się UDR, ale nie wiem czy to o to chodzi. Będę wdzięczny za jakąkolwiek sugestię.