Home   Mikrocontroller und Programmierung    AVR-Grundlagen    Empfangen und Senden

Elektronik-net

Franzis Akademie

Weitere Artikel aus dem Elo-Magazin
AVR-Grundlagen

Empfangen und Senden

Größere Mikrocontroller aus der AVR-Serie wie der ATmega8 verfügen über einen Hardware-UART (Universal Asynchronous Receiver Transmitter, universeller asynchroner Empfänger und Sender). Der ATtiny13 enthält eine solche Baugruppe nicht. Deshalb müssen die erforderlichen Funktionen durch Unterprogramme gebildet werden.

von Burkhard Kainka


Eine Lösung zeigt das Projekt RS232. Hier gibt es ein Unterprogramm RdCOM (Read, Lesen) und ein Unterprogramm WrCOM (Write,
Schreiben). Zur Datenübergabe wurde eine Variable A definiert, die das Register R16 belegt.

Das Unterprogramm RdCOM empfängt ein Byte und übergibt es in A.

Das Unterprogramm WrCOM übernimmt dann das empfangene Byte in A und sendet es zurück.

 

Hauptprogramm des Projekts RS232Die Empfangsroutine RdCOM (Read, Lesen) wartet zunächst auf einen High-Pegel an der Empfangsleitung RXD = PB2. Dann folgt eine Wartezeit von 1,5 Bitlängen (58 Warteschleifen), nach der das erste Datenbit gelesen wird.

 

Das Programm erkennt also das Startbit, um dann jeweils in der Mitte der Datenbits den Eingangszustand auszuwerten.

 

In der eigentlichen Empfangsschleife für die acht Datenbits wird jeweils nur eine Bitlänge gewartet, was mit dem Verzögerungswert Delay = 38 erreicht wird.

 

 

 

 

Ganzen Artikel lesen...