Kod: Markera allt
movlw 0x20
movwf CCPR1L
Warm_Up
incfsz CCPR1L
goto Warm_Up
movlw 0x20
movwf Power
goto Warm_Up
När den nått 100% börjar den om på 25% och växer igen.
Det där fungerar, och hjälper till se vad för inverkan andra faktorer har etc.
På en punkt fungerar det dock inte, oavsett vilket värdet är på PR2 etc.
När den nått 100% (0xFF) tar det ett bra tag innan den börjar om på 25% igen.
Den ligger liksom vilar på 100%, som om den fortsätter växa till något dolt läge som den tycker är max.
Det inträffar även om man använder en ren INCF CCPR1L, istället för den ställda.
Och oavsett en massa annat.
Övriga inställningar är:
_INTOSCIO & _MCLRE_OFF & _WDT_OFF & _PWRTE_ON
Samt:
Kod: Markera allt
bcf STATUS,5 ; BANK ZERO
; - - - - - - - - - - - - - - - - - - - - - -
CLRF GPIO ; Initiate GPIO.
; - - - - - - - - - - -
BSF INTCON,T0IE ; Timer0 intterupt enabled.
BSF INTCON,GPIE ; General port interupt enabled.
; - - - - - - - - - - -
movlw b'00000111'
movwf CMCON0 ; Turn off comparator.
; - - - - - - - - - - - - - - - - - - - - - -
movlw b'11111100' ; 1:16 postscaler
movwf T2CON ; Timer2 On <|> Prescaler is 1.
; - - - - - - - - - - -
BCF CCP1CON,5 ; LSB are...
BCF CCP1CON,4 ; ...both low.
BSF CCP1CON,3 ; PWM mode is...
BSF CCP1CON,2 ; ...active high
; - - - - - - - - - - -
BSF STATUS,5 ; BANK ONES
; - - - - - - - - - - - - - - - - - - - - - -
MOVLW 0x7F ; <<<<< 1/60µs -->> 17kHz
MOVWF PR2
; - - - - - - - - - - -
clrf ANSEL ; No analog ports used.
; - - - - - - - - - - -
bcf OPTION_REG,7 ; Enable pull-ups.
bcf OPTION_REG,5 ; Internal instruction cycle (Fosc/4).
bcf OPTION_REG,3 ; Prescaler assigned to Timer0.
bcf OPTION_REG,2 ; Prescaler rate < 1:32.
bcf OPTION_REG,1 ; Prescaler rate < 1:8. >> 4µs >> 1024µs/T0IF (~1ms)
bcf OPTION_REG,0 ; Prescaler rate < 1:4 => 1:2 >> 1us >> 256us/T0IF <-------<---<-<<
; - - - - - - - - - - -
BSF OSCCON,4 ; 8MHz - internal oscillator.
BSF OSCCON,0 ; Internal oscillator as system clock.
; - - - - - - - - - - -
movlw b'00111001' ; Input GP<5 4 3 0>.
movwf TRISIO ; Output GP<2 1>.
; - - - - - - - - - - -
MOVLW b'00111001' ; Weak Pull-Up @ GP<5 4 (3) 0>.
MOVWF WPU
; - - - - - - - - - - -
BSF IOC,0 ; GP<0> with IOC, interupt on change.
; - - - - - - - - - - -
bcf STATUS,5 ; BANK ZERO
; - - - - - - - - - - -
Givetvis är det inte så, men händelseförloppet på oscilloskopet ser ut som om så.
Vad sysslar PWM-funktionen med?