Jeszcze jedna sprawa. Chciałem sobie napisać bibliotekę UART i napotkałem dziwny problem z fragmentem inicjalizującym UART.
Gdy napiszę ten fragment w sposób następujący:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
to program działa poprawnie.
Gdy napisze ten fragment w tej postaci:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
program nie działa poprawnie (nie zachodzi komunikacja, dioda się nie pali na drugim procku).
Wydaje mi się, że oba przedstawione fragmenty kodu dają wynikowo to samo, a jednak okazuje się, że nie. Czy mógłbym prosić o wyjaśnienie, co jest nie tak?
Wspomniany fragment to biblioteka dla atmegi16 (dla atmegi168 jest oddzielna biblioteka, bez bitu URSEL).
//EDIT:Błąd już się znalazł, okazuje się, że gdy chce się zapisać coś do UCSRC, trzeba ZA KAŻDYM RAZEM zapisywać bit URSEL.
Tak więc zamiast:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
trzeba wpisać:
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
i już wszystko jest w porządku.