> Dear Deepy,
>
> Deep Reset wrote:
>
> > I'm having problems with the PWM module on a PIC 16F627, and I
wondered if
> > anyone could help please.
> >
> > [ sample code snipped ]
> >
> > Any thoughts anyone please?
>
> Since the PWM module relys on timer 2,
> you should also turn that timer on (TMR2ON in T2CON).
>
> HTH
> Wolfgang
>
>
> --
> From-address is Spam trap
> Use: wolfgang (dot) mahringer (at) sbg (dot) at
Thanks for the reply, but that is what (I think) the "BSF T2CON,TMR2ON"
just before the final loop is supposed to do. I'm pretty sure I checked
all the bit assignments. I think I need to borrow a scope, though I'm
pretty sure the LED is not PWM'ing - I lit the adjacent LED, and the
brightness looks the same.
Does anyone know if the PIC simulators allow inspection of the timer
registers? I'm not using one at the moment, just taking a
suck-it-and-see approach by blowing the code to the controller after
each code change.
TIA
Deep.
Reply by Wolfgang Mahringer●January 4, 20052005-01-04
Dear Deepy,
Deep Reset wrote:
> I'm having problems with the PWM module on a PIC 16F627, and I wondered if
> anyone could help please.
>
> [ sample code snipped ]
>
> Any thoughts anyone please?
Since the PWM module relys on timer 2,
you should also turn that timer on (TMR2ON in T2CON).
HTH
Wolfgang
--
From-address is Spam trap
Use: wolfgang (dot) mahringer (at) sbg (dot) at
Reply by Deep Reset●January 3, 20052005-01-03
I'm having problems with the PWM module on a PIC 16F627, and I wondered if
anyone could help please.
The PIC is clocked at 4MHz, and I've got 6 LEDs on port B, including
RB3/CCP1.
I can write simple light-chaser programs, but I'm trying to dim the LED on
CCP1, but it is either on, or its off.
My program looks like this:
RESET MOVLW B'00000111' ;Disable Comparator modules
MOVWF CMCON
BSF STATUS,RP0 ;Switch to bank 1
;Disable pull-ups
;INT on rising edge
;TMR0 to CLKOUT
;TMR0 Incr low2high trans.
;Prescaler assign to Timer0
;Prescaler rate is 1:256
MOVLW B'11010111' ;Set PIC options
MOVWF OPTION_REG ;Write the OPTION register.
CLRF INTCON ;Disable interrupts
MOVLW B'11000000' ;RB7 & RB6 are inputs.
MOVWF TRISB ;RB5...RB0 are outputs.
MOVLW 0xFF ; all RA are inputs
MOVWF TRISA
MOVLW 100 ; set period for PWM
MOVWF PR2
BCF STATUS,RP0 ; Switch Back to Bank 0
MOVLW 5 ; set duty cycle (very low)
MOVWF CCPR1L
CLRF T2CON ; Reset prescale and postscale to 1:1
MOVLW B'00001100' ; Set PWM mode
MOVWF CCP1CON
BSF T2CON,TMR2ON ; enable TMR2
LOOP GOTO LOOP
Just lights the LED on RB3
Any thoughts anyone please?
--
Deep Reset