Hallo Jens und Besserwessi,

vielen Dank für eure Mühe. Es war mir eine große Hilfe. Dass mit den Bitoperatoren kenne ich auch, ich hatte nur den Code von einem anderen C-Skript genommen und gedacht, dass die Konstanten weitestgehend gleich sind. Naja, ich habe es verbessert. Doch zeigt das Terminal nur lauter komische Zeichen trotz korrekter Einstellung.
Mein verbesserter Code (ohne <?php und ?>):
main.c:
[php:1:535e303ed1]
#include <avr/io.h>

#include <util/delay.h>

#include "usart.h"







int main()

{

//USART konfigurieren

init_usart();

usart_write_crlf();

while(1){//USART-Ausgabe

usart_sendchar('H');

usart_sendchar('a');

usart_sendchar('l');

usart_sendchar('l');

usart_sendchar('o');

usart_write_crlf();

}

return(0);

}
[/php:1:535e303ed1]
usart.c:
[php:1:535e303ed1]
#include <avr/io.h>

#include <util/delay.h>

#include "usart.h"



void init_usart(){

//Eingabeparameter einstellen - Aktivierung

UBRR0H = (uint8_t) (UART_BAUD_CALC(UART_BAUD_RATE,16000000)>>;

UBRR0L = (uint8_t) UART_BAUD_CALC(UART_BAUD_RATE,16000000);

UCSR0A = 0x00;

DDRD = 10;

//Senden aktivieren

//Empfangen aktivieren

UCSR0B = (1<<RXEN0)|(1<<TXEN0);

//Konfiguration der Bitlaenge

UCSR0C = (3<<UCSZ00); // 8-Bit character length

}



void usart_sendchar(uint8_t data){

while(!( UCSR0A & (1<<UDRE0)));//Warten bis UDR bereit ist

UDR0 = data;

}

void usart_write_crlf()

{

usart_sendchar(USART_CHAR_CR);

usart_sendchar(USART_CHAR_LF);

}
[/php:1:535e303ed1]
und zu guter letzt:
usart.h:

[php:1:535e303ed1]// Macros



#define UART_BAUD_RATE 38400L

#define UART_BAUD_CALC(UART_BAUD_RATE,F_CPU) ((F_CPU)/((UART_BAUD_RATE)*16L)-1L)

#define USART_CHAR_LF 10L

#define USART_CHAR_CR 13L





void init_usart();

void usart_sendchar(uint8_t data);

void usart_write_crlf();
[/php:1:535e303ed1]
Liegt es an den Fuses oder wodran kann der Fehler liegen?
(Laut Datenblatt müsste alles funktionieren!)

MfG Sebastian
PS: Ich komme auch aus Lippe (also doch Nachbar )