Nabend!

Also ich hab die serielle Schnittstelle jetzt mit diesem Code dazu gebracht das Zeichen "H" an meinen PC zu senden:
Code:
#include <avr/io.h>
#define F_CPU 12000000L
#include <util/delay.h>
#define BAUD 9600L
#define UBRR (F_CPU/(BAUD*16L))-1



int main(void)

{
	UBRR1L = (unsigned char) UBRR;
	UCSR1B = (1<<RXEN)|(1<<TXEN);
	UCSR0C = (1<<UCSZ11)|(1<<UCSZ10); 
	//while (!(UCSR1A & (1<<UDRE)))		//warten bis Senden möglich
	//{
	//}	
	UDR1 = 'H';						//schreibt das Zeichen x auf die Schnittstelle
	_delay_ms (100);
	return 0;							
}
Ich hab aber immernoch ein paar offene Fragen. Ich hab die while Schleife jetzt weggelassen da im Debugger das Programm immer im zweiten Anlauf in dieser Schleife hängen geblieben ist. Meine Frage hierzu ist warum muss ich diese Schleife jedesmal aufrufen bevor ich ein Zeichen senden will? Es sollte doch eigentlich einmal zu Beginn des Sendevorgangs ausreichen oder? Könnt ihr mir das bitte erklären? Dann frage ich mich noch warum ich eine Pause (in meinem Fall jetzt 100ms) brauch damit das ganze funktioniert. Ich weiß dass diese Pause bestimmt nicht so groß sein muss, aber wenn ich die Pause komplett weg lass kommt keine Datenübertragung zustande. Wie kurz die Pause im besten Fall sein kann hab ich noch nicht ausprobiert. Wäre schön wenn ihr mir diese Fragen noch beantworten könntet. Ansonsten noch einmal vielen Dank für die Hilfestellungen!! Ist echt klasse wenn am Ende mal wieder was funktioniert.

Grüße!!

Bean