Controller / Pc / Usart

Gast #3897762
Lesenswert?

Hallo,

ich habe diesen Code auf meinem ATmega8 ausprobiert und nutze dabei das 
"Debug Terminal" unter Windows 7.
Das Terminal zeigt mir auch im Abstand von 1 Sekunde immer neue Zeichen 
an, allerdings nur in Hex, Binär, Dec und etwas nicht lesbares in ASCII.
Meine Baudrate habe ich auf 9600 gesetzt, mein Quarz hat 8MHz. Ich 
erwarte eigentlich den Text "Das ist ein Test" in meinem Terminal.
Liege ich damit falsch oder ist noch etwas mehr dabei zu beachten?

#include <avr/io.h>
#include <stdio.h>
#define F_CPU 8000000UL
#include <util/delay.h>
#define Baud 9600


void uart_init(void)
{
UCSRB = (1 << TXEN);
UCSRC = (1 << URSEL) | (1 << UCSZ1) | (1 << UCSZ0);
UBRRL=0x05; // Baudrate festlegen
UBRRH=0x00; // Baudrate festlegen
}

int uart_send(unsigned char c)
{
while (!(UCSRA & (1<<UDRE)))
{
// mach nichts
}
//senden
UDR=c;
return 0;
}


void uart_write(char *s)
{
while(*s)
{
uart_send(*s);
s++;
}
}

int main(void)
{
uart_init();
while(1==1)
{
uart_write("Das ist ein Test\r\n");
_delay_ms(1000);
}
}

Mit freundlichen Grüßen,
SG

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