- Hola, soy principiante con el pic 18f46j50 y no logro hacer funcionar el PWM. Pienso que el fallo lo puedo tener a la hora de seleccionar la salida del PWM.
Estoy usando el MPLAB v8.35 y cuando lo simulo no veo la activiacion de la salida.
List p=18F46J50 ;Tipo de procesador
#INCLUDE P18F46J50.INC
Periodo equ .500 ;Periodo de 40 uS
Duty equ .50 ;Anchura 10 uS
ORG 0X00 ;siempre empieza en la direccion cero
goto Inicio ;saltamos al inicio del programa
ORG 0X50 ;dejamos espacio para las interrupciones
;Programa principal
Inicio
movlb 0x0F ;seleccionamos banco 15 para ODCON1
BSF ODCON1,0 ;OPEN-DRAIN CONTROL ENABLE, hay que poner una resistencia de 1k a positivo en las salidas
BSF ODCON1,1 ;OPEN-DRAIN CONTROL ENABLE, hay que poner una resistencia de 1k a positivo en las salidas
;inicializamos tlckcon
movlw b'00000000'
movwf TCLKCON
movlw b'11111011'
movwf TRISC ;RC2 salida, resto entradas
;despotegemos para asisgnar el pin de salida
MOVLB 0X0E
BCF INTCON,GIE
MOVLW 0X55
MOVWF EECON2,0
MOVLW 0XAA
MOVWF EECON2,0
BCF PPSCON,IOLOCK,BANKED
;asignameremos el pin de salida RC2-rpor13
movlw 0x14
movwf RPOR13,BANKED
;protegemos despues de asignar el pin de salida
BCF INTCON,GIE
MOVLW 0X55
MOVWF EECON2,0
MOVLW 0XAA
MOVWF EECON2,0
BSF PPSCON,IOLOCK,BANKED
movlw Periodo-1
movwf PR2 ;Carga el registro de periodos
movlw Duty
movwf CCPR2L ;Carga la anchura del pulso
;El módulo CCP2 actúa en el modo PWM con salida de señal por RC2/CCP1
movlw b'00001100'
movwf CCP2CON
;El TMR2 trabaja con un preescaler 1:1 por lo que con una frecuencia de 20MHz evoluciona
;cada 0.2uS (4*Tosc)
movlw b'00000100'
movwf T2CON ;Timer2 en On
movlw b'10000000'
movwf ECCP2DEL
movlw b'00010100'
movwf PSTR2CON
Loop nop
goto Loop ;Bucle infinito
end ;Fin del programa fuente