Gast
#1819965
Hallo Forum, ich versuche seit einiger Zeit auf dem Atmega328 einen Software-UART zu betreiben. Ich verwende den Code, welchen Atmel bereitstellt(AVR304: Half Duplex Interrupt Driven Software UART on tinyAVR and megaAVR devices, siehe Anhang). Der Code ist ursprünglich für 8MHz, ich betreibe den ATmega aber mit 16MHz und den UART mit 38400 Baud. Folgender Code ist für das Timing zuständig:
1 | |
2 | |
3 | |
4 | |
5 | |
Jetzt habe diese Werte einfach verdoppelt (wegen der doppelten Taktrate), aber HTerm bringt nur Mist. Auch wenn ich den Atmega mit dem internen Takt bei 8MHz betreibe bekomme ich nur Schrott. Wenn ich das Oszi dranhänge, sehe ich, dass etwas gesendet wird. Es kommt mir aber so vor als ob nur ein Zeichen gesendet wird, obwohl ich in einer Schleife jeweils 10 Zeichen senden will. Ich weiss einfach nicht mehr weiter. Vielleicht kann mir von Euch jemand erklären, was ich falsch mache. Vielen Dank im Voraus. Andreas