ATMEGA32 UART mag nich

OP #238767
Lesenswert?
• ▲
▼
Hallo!

Hab eine kleine Testroutine gebastelt und meinen UART zum Alphabet
aufsagen zu überreden.
1
#define FCPU 8000000L
2
#define UART_BAUD_RATE 9600
3
#define UART_BAUD_CALC(UART_BAUD_RATE,F_OSC)
4
((F_OSC)/((UART_BAUD_RATE)*16L)-1)
5

6
#include <inttypes.h>
7
#include <stdio.h>
8
#include <stdlib.h>
9
#include <avr/io.h>
10

11
int uart_putc(unsigned char c)
12
{
13
    while (!(UCSRA & (_BV(UDRE))));
14
    UDR = c;
15
    return 0;
16
}
17

18
int main( void )
19
{
20

21
    UCSRB |= _BV(TXEN);
22
    UCSRC |= _BV(URSEL)|_BV(UCSZ0);
23

24
    UBRRH=(uint8_t)(UART_BAUD_CALC(UART_BAUD_RATE,F_CPU)>>8);
25
    UBRRL=(uint8_t)UART_BAUD_CALC(UART_BAUD_RATE,F_CPU);
26

27
    for (int i='A';i<'A'+26;i++) {
28
        uart_putc(i);
29
    }
30

31
}

Am PC kommt aber nur Ah"Et!IibMzP5QUuaY an. Dort sind 9600 Baud mit
8N1 eingestellt. Was mach ich denn falsch?

Grüße
  Tobias

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren