Forum: Mikrocontroller und Digitale Elektronik Atmega329P + SoftUART - Timing ?


von Schalke69 (Gast)


Angehängte Dateien:

Lesenswert?

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
#ifdef  BR_38400
2
    #define TICKS2COUNT          25  //!< Ticks between two bits.
3
    #define TICKS2WAITONE        25  //!< Wait one bit period.
4
    #define TICKS2WAITONE_HALF   38  //!< Wait one and a half bit period.
5
#endif
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

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
Noch kein Account? Hier anmelden.