У меня проблемы с настройкой ШИМ на моем PIC18F45K22. Я могу заставить его работать на CCP1 с помощью timer2, но я хотел бы использовать CCP4 и timer4, поскольку я планирую использовать CCP1 и timer2 в другом месте.
Кодирую на сборке (mpasm v5.87). Я не уверен, почему этого не происходит на CCP4 с timer4, даже если тот же код работает для CCP1 с timer2. Ниже мой код, так что, надеюсь, гений PI C может обнаружить мою ошибку.
; Set oscillator speed at 4 MHz
bsf OSCCON, IRCF0
bcf OSCCON, IRCF1
bsf OSCCON, IRCF2
; Initialize Port D
clrf PORTD
clrf LATD
bsf TRISD, CCP4
; Set up Timer 4
clrf T4CON
clrf TMR4
; Select timer4 for PWM
bcf CCPTMRS1, C4TSEL1
bsf CCPTMRS1, C4TSEL0
; Setup period of PWM
movlw .10
movwf PR4
; Configure CCP4CON for PWM
; CCP4M<3:0> = 11XX for PWM
movlw b'00001100'
movwf CCP4CON
; Set duty cycle at 50%
movlw .5
movwf CCPR4L
; Clear timer4 interrupt flag
bcf PIR5, TMR4IF
; Start timer4
bsf T4CON, TMR4ON
; RD1 as output
bcf TRISD, CCP4