USART_Init:
clr r18
out UBRRnH,r18
out UBRRnL,r18
; Das XCKn-Portpin als Ausgang setzen, was den Master-Modus aktiviert
sbi XCKn_DDR, XCKn
; MSPI-Betriebsart auf SPI-Modus 0 setzen
ldi r18,(1<<UMSELn1)|(1<<UMSELn0)|(0<<UCPHAn)|(0<<UCPOLn)
out UCSRnC,r18
; Sender und Empfänger freigeben
ldi r18,(1<<RXENn)|(1<<TXENn)
out UCSRnB,r18
; Baudrate setzen.
; WICHTIG: Die Baudrate darf erst nach der Aktivierung von Sender und Empfänger gesetzt werden!
out UBRRnH,r17
out UBRRnL,r18
ret
Kodebeispiel in C(1)
void USART_Init(unsigned int baud) {
UBRRn = 0;
/* Das XCKn-Portpin als Ausgang setzen, was den Master-Modus aktiviert */
XCKn_DDR |= (1<<XCKn);
/* MSPI-Betriebsart auf SPI-Modus 0 setzen */
UCSRnC = (1<<UMSELn1)|(1<<UMSELn0)|(0<<UCPHAn)|(0<<UCPOLn);
/* Sender und Empfänger freigeben */
UCSRnB = (1<<RXENn)|(1<<TXENn);
/* Baudrate setzen. */
/* WICHTIG: Die Baudrate darf erst nach der Aktivierung von Sender und Empfänger gesetzt werden! */
UBRRn = baud;
}
| |
---|
|