Dokonałem pewnych zmian w ustawieniach USART, mianowicie ustawiam tylko rejestry:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Podpiąłem się terminalem pod uC na krzyż (Rx do Tx i na odwrót), a w przerwaniu odpowiadającym za odbiór danych nadaję to co dostałem z terminala/komórki. Co ciekawe dla znaków 'a', 'b' program zwraca wszystko poprawnie (otrzymuję to samo co dostałem), problem natomiast występuje teraz z cyframi, przy wysyłaniu '1', '2' dostaję w terminalu krzaki... Dodatkowo pomimo tego, że uC otrzymuje (i zwraca) znaki 'a' i 'b' to warunek if(d=='a') nie wykonuje się. Zaczynam już powoli kombinować na chybił trafił, nic sensownego nie przychodzi mi już do głowy

.
Dodatkowo wychodzi na to, że niezależnie od tego którą literę alfabetu wyślę (dużą czy małą) nadal wykrywa ją jako znak o kodzie 63.
@EDIT:
Problem rozwiązany, tkwił w złych ustawieniach rejestrów. Gdyby ktoś miał kiedyś podobny problem powinno to wyglądać tak:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
Tym oto sposobem otrzymamy USART pracujący dla 8bitów danych, 1 bitu stopu i zeru bitów parzystości. Prędkość 19200 dla taktowania 8MHz.
Dziękuję za udzieloną pomoc, pozdrawiam.