
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
Hallo..... Die MICRO kann die 19200 ! Es ist so, dass die MICRO den Baudrate-Prescaler aus dem Programm-download mit 9600 berechnet und dann (nicht flüchtig) speichert. Probleme gibt es eigentlich nur, wenn (wie mit der Transistorschaltung) Delays wirksam sind, was dann bei 19200 zu grossen Fehlern in der Baudrate führt. Wie gesagt, es sollte eigentlich mit dem MAX funktionieren. Es gibt aber ein Calibrierprogramm um diese Zeitkonstanten zu kompensieren, damit muss es auf jeden Fall gehen: ------------------------------------------------------------------------------------------------------------ ' Eine automatische Calibrierung der Baudrate bei jedem Download eines BASIC-Programms stellt ' zwar den Betireb bei 9600 Baud sicher, ist u.U. aber nicht ausreichend für den ' Betrieb mit 19200 Baud (vor allem wenn der RC-Oszillator driftet, oder die ' Betriebsspannung schwankt). ' Um trotzdem den Betrieb bei 19200 Baud zu ermöglichen, kann der Oszillator calibriert ' werden. '------------------------------------------------------------------------- ' Der Befehl FREQ2=WERT schreibt einen Korrekturfaktor in das Betriebssystem, ' der den Takt um 0,2% je Digit (ausgehend vom Defaultwert 128, nach dem RESET) ' korrigiert. ' Der Inhalt von FREQ2 kann nicht gelesen werden und eine Anweisung wie etwa ' a=FREQ2 führt zu unkontrollierbarem Fehlverhalten, da das entsprechende TOKEN ' vom INTERPRETER der MICRO nicht erkannt wird. '------------------------------------------------------------------------- ' Dieses Programm erhöht/verringert den Wert in FREQ2 bei jedem kurzen/langen Tastendruck, ' ausgehend vom default Wert 128 = &H80. ' kurz= 0....200ms, lang= 0....1s ' Ein Tastendruck darf auf keinen Fall länger als eine Sekunde sein, da der Timer über ' Null rollt und ein kurzer Druck gemessen wird. ' Nach jedem neuen Wert für FREQ2 wird dieser und ein Kontrollstring ausgegeben. ' Mit einem Terminalprogramm können Sie den Bereich der gültigen Werte ermitteln. ' Der gesuchte Wert liegt in der Regel nicht weit von der Defaulteinstellung. ' Nähern Sie sich deshalb in kleinen Schritten um auch zu ermitteln, ob FREQ2 ' grösser oder kleiner werden muss. ' z.B. Einschalten, Schritte nach unten ' ' Wählen sie für die Korrektur des Oszillators ' ' FREQ2=KORREKTUR ' ' einen Wert aus der Mitte dieses Bereiches. ' Verwenden Sie diesen Wert einmalig in der Initialisierung Ihres Anwenderprogramms. ' ' ACHTUNG: ' Wenn Sie die Anleitung aufmerksam gelesen haben, wissen Sie, dass das P/E-Board wegen ' grosser Zeitkonstanten nicht 19200 Baud fähig ist. ' Sie können diese Kalibrierung erfolgreich auf dem P/E-Board durchführen, weil damit ' auch die Zeitkonstanten "herauscalibriert" werden, jedoch ist der gefundene KORREKTURWERT ' nicht repräsentativ, wenn die MICRO in Ihrer Anwendung später einen anderen ' RS232 Pegelwandler benutzt. '------------------------------------------------------------------------------------ ' ----> Sie können das P/E-Board auf diese Weise 19200 Baud fähig machen ' ----> Wenn Ihre MICRO nach der Programmierung in einer anderen Hardwareumgebung ' bez. RS 232 läuft, muss sie auch in dieser calibriert werden. '------------------------------------------------------------------------------------ '-------------------------- '------ I/O PORTS --------- '-------------------------- define LED port[5] define TASTER port[3] define TXD port[1] define BEEPPORT port[6] '-------------------------- '---- SYSTEM MEMORY ------- '-------------------------- define COUNTS byte[1] BAUD 19200 freq2=&H80:COUNTS=&H80 '-------------------------------------------------- ' LOOKING FOR GOOD FREQ2 VALUES - '-------------------------------------------------- print "CALIBRIERUNG DES OSZILLATORS" PRINT "- BITTE TASTER DRUECKEN -" #WAIT WAIT not TASTER:SECOND=0: WAIT TASTER if TIMER < 10 then goto INCREASE #DECREASE COUNTS=COUNTS-5:FREQ2=COUNTS:pause 5:print COUNTS;:print " TESTCHARACTERS" goto WAIT #INCREASE COUNTS=COUNTS+5:FREQ2=COUNTS:pause 5:print COUNTS;:print " TESTCHARACTERS" goto WAIT |
| Antwort schreiben |