Autor Tema: Ayuda con PWM del PIC16F88  (Leído 4535 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado JoEc

  • PIC10
  • *
  • Mensajes: 2
Ayuda con PWM del PIC16F88
« 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.

Código: [Seleccionar]
;*********************************************
;***************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
« Última modificación: 08 de Marzo de 2010, 19:09:59 por JoEc »

Desconectado JoEc

  • PIC10
  • *
  • Mensajes: 2
Re: Ayuda con PWM del PIC16F88
« Respuesta #1 en: 10 de Marzo de 2010, 19:08:48 »
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......   :-/

Desconectado AKENAFAB

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3227
Re: Ayuda con PWM del PIC16F88
« Respuesta #2 en: 11 de Marzo de 2010, 00:54:48 »
Que bien que lo resolviste , a ver si me pongo a tono nuevamente con el asm >_<.

Saludos!

Desconectado miguel valdivia

  • PIC10
  • *
  • Mensajes: 46
Re: Ayuda con PWM del PIC16F88
« Respuesta #3 en: 23 de Agosto de 2010, 18:52:01 »
muetranos el esquema para saber como esta conectado el led y los pulsadores