PIC 12F67X und der OSCCAL Wert

Ergänzung zum Thema PIC 12F675:

Einige PIC’s (wie auch der 12F675) können mit ihrem internen Oszillator betrieben werden. Da dieser recht große Toleranzen aufweist, wurde für jeden PIC ab Werk ein Kalibirierwert ermittelt. Dieser Wert liegt in der letzten Speicherzelle des Programmspeichers (0x3FF) und sollte beim Start in das Osccal Register geschrieben werden. In meinem Beispielprogramm ist das missverständlich beschrieben, die Teile, die in der Initialisierung das OSCCAL Register betreffen am besten löschen wenn man damit keine Erfahrung hat. (Ich habe diese Zeilen eigentlich nur zu Experimenten eingefügt und übersehen :oops: )

es geht um die folgenden Zeilen, einfach löschen:

————————————————————-

;OSCCAL setzen; Internen Oszillator einstellen

Bank1
movlw b’00000000′ ; liegt in Bank 1
movwf OSCCAL

Bank0
….

———————————————————

und durch:

Bank 1

call    0x3FF
movwf   OSCCAL

Bank 0

———————————————————

ersetzen!

Da sich dieses Miniprojekt aber zunächst nur mit einfachen LED Blinkereien beschäftigt, kommt es auf die Genauigkeit dort nicht wirklich an. In späteren Beispielen gehe ich noch näher auf die Abstimmung des Oszillators ein. Wie der Wert in der Realität behandelt wird, ist auch von der Brennsoftware abhängig. Es sei aber erwähnt, das dieser Wert auch dauerhaft gelöscht werden kann (Fehlbehandlung oder Programmierprobleme), damit ist er verloren!

Bei ‚Sprut‚ ist zu dem Thema einiges sehr gut beschrieben (wie eigentlich immer), wer sich jetzt schon informieren möchte… :-)

Bei zeitkritischen Anwendungen würde ich ohnehin nicht auf eine Lösung mit Quarzoszillator verzichten, die beiden Dateien (12f675.zip bzw. 12f675.asm) habe ich bereits korrigiert. Also beachten: Die Adresse 0x3FF sollte nie überschreiben werden!

 





Ein Gedanke zu „PIC 12F67X und der OSCCAL Wert

  1. Pingback: PIC 12F675 Downloads | Michael-Floessel.de – Blog

Die Kommentare sind geschlossen.