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
StewieGriffin schrieb: > UBRRL=0x05; // Baudrate festlegen > UBRRH=0x00; // Baudrate festlegen Damit bist du irgendwo zwischen 76.8KB und 80KB. Richtig ist 0x33.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.