TODOPIC
Microcontroladores PIC => Primeros pasos - Iniciación a los microcontroladores => Mensaje iniciado por: JoEc en 07 de Marzo de 2010, 19:45:49
-
Estoy iniciandome con el PIC16F88 y no consigo que salga señal por el puerto correspondiente a la salida PWM (RB0 -RB3). Adjunto código a ver si alguien puede indicarme que es lo que estoy haciendo mal.
Utilizo MPLAB IDE V8.33 o MicroCode Studio, y PIC SIMULATOR IDE.
Simulando observo que CCP1H no se carga con el valor de CCP1L cuando el comparador alcanza el periodo fijado. Tampoco hace SET al biestable del modulo PWM.
;*********************************************
;***************La idea es simplemente modificar el DUTY mediante pulsadores RA4-RA5 y salida de onda por RB3***
;*********************************************
list p=16f88
#include "p16f88.inc"
__CONFIG _CONFIG1, _CP_OFF & _CCP1_RB3 & _DEBUG_ON & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_OFF & _PWRTE_ON & _WDT_OFF & _XT_OSC
__CONFIG _CONFIG2, _IESO_OFF & _FCMEN_OFF
TRISA equ 85h
TRISB equ 86h
PORTA equ 05h
PORTB equ 06h
STATUS equ 03h
CCP1CON equ 17h
CCPR1L equ 15h
CCPR1H equ 16h
T2CON equ 12h
PR2 equ 92h
ANSEL equ 9Bh
R_OPTION equ 81h
;***************************************************************
INICIO
BCF STATUS, IRP ;asegura estar en banco 0-1
BCF STATUS, RP1
BSF STATUS,RP0 ;Select Bank 1
CLRF ANSEL ; I/O Digitales
CLRF R_OPTION
MOVLW b'00110000'
MOVWF TRISA ; config A1 A2 entradas resto salidas
MOVLW b'11110110'
MOVWF TRISB ; configuramos como salida
MOVLW H'1F' ; Periodo del PWM 2Khz
MOVWF PR2
BCF STATUS, RP0 ; Select Bank 0
PRECARGA ; valor inicial de Duty
MOVLW H'03'
MOVWF CCPR1L ; Ciclo de trabajo 0% 8bits MSB del DUTY
bsf CCP1CON,CCP1X ; Bits <5:4> forman LSB del DUTY
bcf CCP1CON,CCP1Y
MOVLW b'00000100' ; Timer2 ON pre 1:1 pos scaler 1:1
MOVWF T2CON
bsf CCP1CON,CCP1M3 ; Configura modulo CCP modo PWM.-
bsf CCP1CON,CCP1M2
WAIT_TECLA
btfsc PORTA,4 ; chequeo RA4
goto SUBE
btfsc PORTA,5 ; chequeo RA5
goto BAJA
goto WAIT_TECLA
SUBE
INCF CCPR1L,1 ; Aumento DUTY
GOTO WAIT_TECLA
BAJA
DECF CCPR1L,1 ; Disminuye Duty
GOTO WAIT_TECLA
END
-
Bueno, parece que es un problema del Pic_Simulator_Ide, porque despues de revisar 20 veces la documentacion se me ha ocurrido utilizar MPLABSIM y ¡Eureka! veo activarse la salida...... :-/
-
Que bien que lo resolviste , a ver si me pongo a tono nuevamente con el asm >_<.
Saludos!
-
muetranos el esquema para saber como esta conectado el led y los pulsadores