Atmega 128 – UART Comunication
Exemplul este valabil pentru Atmega128 + Quartz 8MHz
|
Atmega 128 – UART Comunication |
BaudRate 4800 se seteaza registrul UBRR1H = 0 si UBRR1L = 103 BaudRate 9600 se seteaza registrul UBRR1H = 0; UBRR1L = 51; BaudRate 115200 – UBRR1H = 0; UBRR1L = 3;
- pentru a se putea citi date este necesar sa se activeze linia RX – de asemenea pantru a se trimite date trebuie activata linia TX UCSR1B = (1<<RXEN1)|(1<<TXEN1) – Pentru a citi date de pe linia RX exista 2 posibilitati: sa se astepte in continuu pana la RX vine “ceva” in cazul asta nu se mai poate face nimic altceva pana nu se citeste de la UART sau sa se semnaleze cu ajutorul unei intreruperi momentul exact cand vine o data pe Rx si doar atunci sa se faca citirea. – Pentru a “spune” microcontrolerulul ca intreruperea pentru Rx este activata se foloseste urmatoarea linie de cod: UCSR1B = (1<<RXEN1)|(1<<TXEN1) | (1 << RXCIE1)
UCSR1C = (3<<UCSZ10);
while ((UCSR1A & (1<<RXC1))==0); // astept pana apare ceva la portul serial return UDR1; // dupa ce iese din while -ul de mai sus in UDR1 este disponibil un Byte |
