Autor Tema: Duda PWM ayuda!!!!  (Leído 2053 veces)

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

Desconectado manuelroin

  • PIC12
  • **
  • Mensajes: 51
Duda PWM ayuda!!!!
« en: 04 de Diciembre de 2005, 17:24:00 »
Bueno antes que nada saludarlos a todos y me da mucho gusto que esta pagina sigue siendo la mejor . bueno directo al problema le explico:

      Estoy teniendo problemas con un ejemplo sencillisimo de PWM solo para aumentar el Duty Cycle bueno como todos sabemos cuando el TMR2 es igual al CCPR1H entonces por el pin RC2 sale un "0" y cuando el TMR2 es igual al PR2 sale "1" por el pin RC2 y en mi programa ni siquiera esto sucede osea nunca varia el RC2 y no se carga el CCPR1L en el CCPR1H ,cuando el TMR2 es igual al PR2

bueno aqui les dejo mi programa para que lo vean muchas gracias por cierto trabajo en MPLAB muchas gracias y ademas con este programa cuando pulso un boton por RB0 debe aumentar el Duty Cycle muchas gracias

;SEÑAL PWM CONTROLADA POR PULSO

       LIST       P=16F877
       INCLUDE      <P16F877.INC>

       ORG      0000H
       GOTO   INICIO

       ORG      0004H
       GOTO    INTERRUPCION

INICIO
       BSF    STATUS,RP0
       BSF      TRISB,0
       BCF      TRISC,2
       BSF      INTCON,GIE
       BSF      INTCON,INTE
       MOVLW   .100
        MOVWF   PR2
       BCF      STATUS,RP0
       MOVLW   .50
       MOVWF   CCPR1L
       MOVWF   CCPR1H
       MOVLW   B"00001100"
       MOVFW   CCP1CON
       MOVLW   B"00000110"
       MOVWF   T2CON
       GOTO                   $
;============================

INTERRUPCION
        BCF      INTCON,INTF
        INCF                   CCPR1L,1
        RETFIE
       END

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
RE: Duda PWM ayuda!!!!
« Respuesta #1 en: 06 de Diciembre de 2005, 12:32:00 »
Tu código tiene un pequeño problema:

Codigo:

   MOVLW B"00001100"
   MOVFW CCP1CON



Está mal, MOVFW no te da error porque en realidad estás moviendo el contenido del CCP1CON al WREG.  Esto es un macro del mplab.  Lo que debes hacer es cambiar esta línea para que quede asi:

Codigo:

   MOVLW B"00001100"
   MOVWF CCP1CON



Con esto debiera funcionar.
PD: si utilizas la interrupción y tienes debouncing, el duty cycle variará rápidamente debido a esto ya que no tienes retardos entre leer y volver a leer la interrupcion del RB0.

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado manuelroin

  • PIC12
  • **
  • Mensajes: 51
RE: Duda PWM ayuda!!!!
« Respuesta #2 en: 06 de Diciembre de 2005, 22:48:00 »
Muchas gracias amigo y la verdad te pido disculpas por ese error tan tonto y ademas me parece raro que mi MPLAB no me arrojase un error por ello pero de todas maneras muchisimas muchisimas gracias y disculpa por molestarte por nada

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
RE: Duda PWM ayuda!!!!
« Respuesta #3 en: 07 de Diciembre de 2005, 16:35:00 »
Escrito originalmente por manuelroin
Muchas gracias amigo y la verdad te pido disculpas por ese error tan tonto y ademas me parece raro que mi MPLAB no me arrojase un error por ello pero de todas maneras muchisimas muchisimas gracias y disculpa por molestarte por nada


Tal vez no leíste bien mi respuesta.

movfw es un built-in macro del mplab.

Hacer movf   PORTA,w  y movfw PORTA son idénticos.  

El compilador reemplaza el mofw REG por un movf REG,w  es por eso que no te da error.


Saludos

- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)