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 geändert, mein Quarz hat 8MHz. Ich erwartet 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,
Stewie Griffin
Lesezeichen