Ich brauche beim AVR alle Pins. Daher habe ich auch die XTAL-Pins verwendet.
Da der interne RC Oszilator nicht sehr temperaturstabil ist, ergeben sich bei Temperaturänderungen Probleme mit der Baudrate der RS232.
Um das Problem zu lösen möchte ich eine Art "autotune" für das OSCCAL erstellen.
Ginge ja bei meiner Anwendung ganz einfach :
Ein PC fragt vom AVR 5*pro Sekunde Werte ab.
Wenn der PC die Werte die ich sende empfängt sendet er eine Bestätigung zurück.
Wenn ich diese Bestätigung nicht mehr erhalte erhöhe ich den Wert des OSCAL-Registers um eins , aber maximal bis + 8, dann fange ich mit Werte von -7 wieder von unten an.
Irgendwann , nach spätestens 2 Sekunden fängt er sich dann wieder bei einem Wert bei dem die Baudrate wieder in er Toleranz ist.
Bei meiner Anwendung ist es zum Glück egal wenn mal einige Werte nicht richtig übertragen werden !
Ein kleines Testprogramm läuft nun schon ganz gut.
Ich sehe am Oszi wenn das Timing rauswandert und nach dem Abgleich des OSCCAL wieder in Zeitfenster reinkommt.
Nun meine Frage :
Spricht was gegen diese Lösung ?
Im "AVR-Mikrocontroller-Lehrbuch" von Roland Walter (www.rowalt.de) ist eine solche Routine beschrieben. Ich schaue mal zuhause nach, ob ich den Artikel noch finde. Kann 1-2 Tage dauern.
ich hab die Info gefunden. Das Basic-Programm steht im RcTerm.txt. Falls Du weitere Infos dazu brauchst bitte eine PN senden. RCTerm.zip musst Du in RcTerm.exe umbenennen (exe.Dateien kann man nicht hochladen).
Lesezeichen