Hallo, ich brauchte letztens einen Software UART. Für die Bibliotheken, welche man online findet, benötigt man jedoch einen ICP-Eingang und einen Output-Compare-Ausgang. Das steht mir aber leider nicht zur Verfügung, also habe ich mit Hilfe eines Timer einen eigenen Software UART geschrieben, welchen ich gerne mit euch teilen möchte. Über Kritiken freue ich mich selbstverständlich sehr! Die Lib ist für einen Atmega168 und den Timer1. Es geht aber prinzipiell mit jedem Timer. Der Timer misst mit einem einstellbaren Oversampling einen beliebigen RX Eingang. Der Schwellwert, wann ein Wert als High erkannt wird, ist einstellbar (ich empfehle hierbei min. 50%). Das Senden verläuft ähnlich. Zu beachten ist, dass eine hohe Baudrate zu einer kurzen zeit zwischen den Timer-Interrupts führt, da das nicht wie beim Hardware UART eine eigene Einheit macht. Für eine kleine zusätzliche Debugging-Schnittstelle o.ä. reicht es aber auch eine geringe Baudrate. Ich wünsche viel Spaß damit!
:
Verschoben durch Moderator
Kleine Korrektur. Habe gerade gesehen, dass ich zwei Defines und die Includes noch aus meinem Projekt stammen. Habs jetzt angepasst.
Hannes E. schrieb: >... > ich brauchte letztens einen Software UART. Für die Bibliotheken, welche > man online findet, benötigt man jedoch einen ICP-Eingang und einen > Output-Compare-Ausgang. >... Nicht bei allen... http://www.siwawi.arubi.uni-kl.de/avr_projects/#softuart ist aber gleiches Prinzip Als Mod.: Anhang im ersten Beitrag gelöscht, da im zweiten Beitrag korrigiert. Thread in Unterforum Codesammlung verschoben.
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.