Okay, I was curious about the actual speed my controller is running at, so I ran the following loop on it. If I'm not mistaken, I've set OSCCON to 8MHz, so at 4 clock/instruction I should see
0.5 uS pulses. My scope on RB4 shows pulses 5uS wide!I'm out by a factor of 10. What have I not taken into account?
#include __config (_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _BOR_OFF & _IESO_OFF & _FCMEN_OFF)
Org 0 goto Start Org 4 goto ISR ISR retfie
Start movlw 0x71 ;b'01110001' BANKSEL OSCCON movwf OSCCON
; initialize any register that might affect I/O BANKSEL IOCB clrf IOCB clrf WPUB clrf ANSEL clrf ANSELH
BANKSEL TRISA clrf TRISA ; PORTA all output clrf TRISB ; PORTB all output clrf TRISC ; PORTC all output
BANKSEL SSPCON bcf SSPCON, 5
;=== run timing loop === BSF PORTB,4 BCF PORTB,4 goto $-2 end