Dieses Datenblatt liegt dieses beim Controller/ Board bei?
keine Ahnung. Wenn es ein Datenblatt für deinen ATMEGA32 ist, kann es jedenfalls nicht verkehrt sein.
Das
UART ist dann die Schnitstelle für die Kommunikation zum PC sehe ich das richtig?
Ja.
Wie funktioniert dies dan beim Empfangen? Wartet der Controller immer, bis er etwas empfängt oder läuft er einfach weiter in der Schleife?
Das könntest du z.B. so machen:
Code:
for(;;){ //diese Schleife kommt in dein Hauptprogramm und läuft immer wieder durch
while (!(UCSRA&BV(RXC)));; //macht nix, bis etwas empfangen wurde
if (UDR==0) Bewegemotor(-1);
if (UDR==1) Bewegemotor(1);
}//wenn er sich dann um den Befehl gekümmert hat, geht er wieder zurück in die Warteschleife bis ein neuer ankommt.
Wie funktioniert es den mit Interrupts? (Was ist das überhaupt)???
Ein Interrupt erlaubt es dir, auf Befehle zu reagieren, ohne, dass der Controller die ganze Zeit darauf wartet.
Sorry bin noch neu auf diesem Gebiet, habe bis jetzt nur C++ Appl. geschrieben
Wenn du schon C++ kannst, solltest du mit etwas Geduld im Datenblatt 'rauskriegen, wie man den Controller bedient.
Hätte mir jemand ein Beispiel zu der ganzen Kommunikation? (Für den Teil auf dem Controller)
Ich hoffe, das Prinzip ist in dem Codeschnipsel klargeworden. Du musst vorher nur beim Start des Controllers je nach gewünschter Baudrate einen Wert in UBRRL(und ggf. auch in UBRRH) schreiben und das RXEN-Bit(zum aktivieren des Empfangs über das UART) setzen(ich verweise nochmal auf das Datenblatt, da ist die Prozedur genau beschreiben. Wenn du da was nicht verstehtst, kannst du ja gerne nochmal genau danach fragen.).
Lesezeichen