Re: PIC timing
- From: "john jardine" <john.jardine@xxxxxxxxxxx>
- Date: Fri, 28 Dec 2007 23:15:14 -0000
"randy.day" <randy.day@xxxxxxxx> wrote in message
news:nTedj.29074$DP1.13331@xxxxxxxxxxxx
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 <p16F690.inc>
__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
The "goto $-2" takes two instruction times.
I make it as, (in 0.5uS steps and 0V,5V) ...
5-0-0-0-5-0-0-0-5-0-0-0-5-0-0-0-5 ...
I.e. 2uS repetition (500kHz), at a 1:3 duty cycle with 8MHz clock=2 mips.
.
- References:
- PIC timing
- From: randy.day
- PIC timing
- Prev by Date: PIC timing
- Next by Date: Re: Can you charge a battery from two sources at the same time?
- Previous by thread: PIC timing
- Next by thread: Re: PIC timing
- Index(es):
Relevant Pages
|