Hallo liebe Community,
ich bin gerade dabei meinen ATXMEGA128A1 für UART zu inizialisieren,
zuerst möchte ich ein UART verbindung zwischen dem Mikrocontroller und
meinem PC herstellen.
Als Hyperterminal benutze ich HTerm.
Den Controller programmiere ich mit Atmel6 über einen AVRISP mkII
Adapter.
Die Tutorials die ich hier im Forum gefunden habe waren teilweise sehr
hilfreich, jedoch waren diese alle für die atmega8 vorgesehen.
Ich versuche jetzt erstmal an den PC ein Zeichen über UART zu senden.
Meine Frage betrifft die Baudrate.
Ich habe in einigen Hilfestellung gefunden die sich auch leider auf den
atmega8 bezogen haben.
Im USART Port befinden sich 2 Register zur Baudratenbeschreibung jedoch
weis ich nicht was ich damit anfangen soll.. ^.-
das hier ist mein Code bis jetzt..
1 | #define F_CPU 32786
|
2 | #define BAUD 9600
|
3 |
|
4 | int main(void)
|
5 | {
|
6 | initBoard();
|
7 | USARTE0.CTRLA = 0x01;
|
8 | USARTE0.DATA = 'r';
|
9 | return 0;
|
10 | }
|
Um meine UART zu konfigurieren habe ich folgende Befehle bis dato
verwendet.
1 | void initBoard() {
|
2 |
|
3 | USARTE0.CTRLB = USART_TXEN_bm | USART_RXEN_bm;
|
4 | //TXEN/RXEN setzen
|
5 |
|
6 | PORTE.PIN0CTRL = 0x00;
|
7 | PORTE.PIN1CTRL = 0x01;
|
8 | //Eingang und Ausgangs Pins setzen
|
9 |
|
10 | //PORTE.DIRSET = PIN3_bm; // ausgang
|
11 | //PORTE.DIRCLR = PIN2_bm; // eingang
|
12 |
|
13 | USARTE0.BAUDCTRLA = ?
|
14 | USARTE0.BAUDCTRLB = ?
|
15 |
|
16 | USARTE0.CTRLC = USART_CMODE_ASYNCHRONOUS_gc|USART_PMODE_ODD_gc | USART_CHSIZE_8BIT_gc;
|
17 |
|
18 | sei();
|
19 | }
|
20 |
|
21 | ISR(USARTE0_RXC_vect) {}
|
Ich würde mich über eine Rückmeldung freuen.
Da ich noch ein Anfänger bin, bitte ich um recht konstruktive Kritik
oder Anregung bzw Hilfe.
Beste Grüße!