Witam,
Chce poruszyc watek mozliwych predkosci wysylania na porcie szeregowym. Trafilem na taka tabele w nocie katalogowej atmegi328:

Szczerze mowiac nigdy sie nad tym wczesniej grubo nie zastanawialem. Komunikacja dzialala lub nie. Nastepnie trafilem na kalkulator USART w programie mkAVR Calculator, ktory potwierdzil moje obliczenia.

A to obliczenia reczne:
UBRR = (F_CPU/(16 * BAUD)) - 1
UBRR = (8000000/(16 * 115200)) - 1
UBRR = (8000000 / 1843200) - 1
UBRR = 4.3401 - 1
UBRR = 3.3401
I tutaj powstaje blad

Ta zmienna jest zapisane w int i co za tym idzie wartosc po przecinku jest tracona. Teraz nalezy policzyc w druga strone.
BAUD = F_CPU / (16 * (UBRR+1))
BAUD = 8,000,000 / (16 * (3 + 1))
BAUD = 8,000,000 / (16 * 4)
BAUD = 8,000,000 / 64
BAUD = 125000
Mozna zauwazyc juz sporo roznice miedzy tym, co chcemy (tzn. 115200) a wartoscia 125,000).
Error% = ((125000/ 115200) - 1) * 100%
Error% =
8.51%Co jest juz lekko poza dopuszczalnymi granicami podanymi przez ATmege (zdjecie nr1). Pomimo to wszystko ladnie dziala.
Generalnie to nie mam wiecej pytan. Chcialem sie tylko z Wami podzielic moimi spostrzezeniami

PS
Pamietam jak przez mgle, ze w ktoryms z filmikow @mirek tlumaczyl dlaczego niektore kwarce maja takie dziwne wartosci jak np. 7372800. Dla tych wartosci nie wystepuja zadene bledy. Moze ktos podrzucic tytul?