Paskaidrojumi kodam:
Pēc bibliotēku iekļaušanas, tiek definētas vairākas UART darbībai vajadzīgas konstantes.
#define FOSC F_CPU nosaka sistēmas takts ātrumu (sistēmas oscilatora clock frekvence),
#define BAUD 9600 kalpo,lai uzstādītu boda ātrumu (bods bija datu pārraides ātruma mērvienība bps jeb biti sekundē)
#define MYUBRR FOSC/16/BAUD-1 ir formula, kas aprēķina UBRR saturu pēc formulas normālajam asinhronajam režīmam.
void usart_init funkcija kalpo UART moduļa inicializācijai. UBRR reģistrs uzdod ātrumu. UBRR0H ierakstītais uzstāda zīmīgos bitus, bet UBRR0L atlikušos mazāk zīmīgos bitus.
UCSR0B statusa reģistrā ierakstītais inicializē datu sūtīšanu un saņemšanu.RXEN bits aktivizē USART uztvērēju un TXEN aktivizē raidītāju.
UCSR0C statusa reģistrs kalpo datu formāta uzstādīšanai. Bija nepieciešams uztādīt 8N2 formātu, kas nozīmē to,ka būs 8 datu biti( UCSZN0) un 2 stop biti (1 iekš USBS).
Pie mikrokontrolera inicializācijas, tiek izsaukta ne tikai potru inicializācijas funkcija, bet arī UART moduļa inicializācijas funkcija.
Void usart_transmit funkcija domāta,lai pārraidītu datus, šajā gadījumā tiek pārraidīts 1 simbols, jo char tipa mainīgais. Lai būtu iespējams pārraidīt virkni, tad būtu jāizmanto string tipa mainīgais.UDRE0 karodziņš norāda, vai UDR reģistrs var saņemt datus. Gaida, kamēr buferis būs tukšs, tad dati tiks ieveitoti buferī un aizsūtīti.
Līdzīgi ir ar usart_receive funkciju, kas gaida datus un atgriež saņemto.RXC norāda, vai ir pabeigta datu saņemšana.
…