Well.. I fuzzled around with this the last two days, reading and re-reading the instructions on the data sheet.. and Im afraid I just don't know what Im doing..or something.. Can someone pls help me understand what Im doing wrong here? Thanks in advance!
Code:
;PWM test using a lookup table.
list P=16f684
#include <p16f684.inc>
__config _INTRC_OSC_CLKOUT & _BOD_OFF & _WDT_OFF & _PWRTE_ON & _MCLRE_ON & _CP_OFF
cblock 20h
swcnt
endc
t equ 0x02
RESET_VECTOR CODE 0X000
start call Init
Init
bsf STATUS,RP0 ;bank 1
movlw 0x00 ; SET ALL TRISC
movwf TRISC ;PORTS TO OUTPUT
movlw b'01110000'
movwf OSCCON
movlw 0x65
MOVWF PR2 ; set PR2
movlw 0x00
movwf ANSEL ; Turn off A/D
MOVLW 0X07 ; and CMCON0
MOVWF CMCON0 ; to make all PORTC pins I/O
BCF STATUS,RP0 ; Switch back to bank0
clrf CCP1CON
movlw b'00000111'
movwf T2CON ;set prescaler to 16
movlw d'50'
movwf CCPR1L
;movlw b'10000011'
;movwf PWM1CON
clrf TMR2IF ; Clear the interrupt flag
BSF TMR2,TMR2ON
Toflow
btfsc TMR2,TMR2IF
goto Toflow
movlw b'11001100'
clrf CCP1CON
RETURN
END
Last edited: