【发布时间】:2020-06-18 19:38:05
【问题描述】:
在我的 PIC18F45K22 上设置 PWM 时遇到问题。我可以使用 timer2 让它在 CCP1 上工作,但我想使用 CCP4 和 timer4,因为我计划在其他地方使用 CCP1 和 timer2。
我正在汇编代码 (mpasm v5.87)。我不确定为什么它不会在带有 timer4 的 CCP4 上运行,即使相同的代码适用于带有 timer2 的 CCP1。下面是我的代码,希望 PIC 天才能发现我的错误。
; 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
【问题讨论】: