Meine Konfigurationsbits sind wie folgt:
#include <P16F1503.inc>
__CONFIG _CONFIG1, _FOSC_INTOSC & _WDTE_OFF & _PWRTE_ON & _MCLRE_OFF & _CP_OFF & _BOREN_OFF & _CLKOUTEN_OFF
__CONFIG _CONFIG2, _WRT_OFF & _STVREN_OFF & _LVP_OFF
Der relevante Teil des Codes, den ich zum Ändern der Frequenz verwende, ist dieser:
banksel OSCCON
movlw b'01101000' ; Int. osc. 4 MHz
movwf OSCCON
btfss OSCSTAT, HFIOFR ; Is internal oscillator running?
goto $-1 ; No, loop one line back...
btfss OSCSTAT, HFIOFS ; Is internal oscillator stable?
goto $-1 ; No, loop one line back...
Mein Debug-Tool ist leider nur ein Simulator. Das Problem ist, dass die Ausführung den Haltepunkt in Zeile 192 nie erreicht:
Das bedeutet also, dass der interne Oszillator niemals stabil wird?
Ich benutze:
Was mache ich falsch?
Wenn Sie den Simulator verwenden, müssen Sie diese beiden Tests auskommentieren, damit der Oszillator läuft oder stabil ist. Da keine Hardware ausgeführt wird, schlagen die Tests immer fehl. Sie sollten in Ordnung sein, wenn Sie einen Debugger wie PICkit 2/3 oder ICD 3 verwenden.
Raketenmagnet
PrimosK