Autor Tema: señal PWM hacia otro puerto, del 12F617  (Leído 1968 veces)

0 Usuarios y 3 Visitantes están viendo este tema.

Desconectado JoseLuis2801

  • PIC16
  • ***
  • Mensajes: 168
señal PWM hacia otro puerto, del 12F617
« en: 07 de Febrero de 2013, 08:50:46 »
Ya he realizado un aaplicacion en PWM, modo simple, que solo salga la señal por una pata, tal y como viene en el manual del PIC,  la del puerto GPIO,2, todo bien. Tanto en el MPLABSIM como ya una vez metido en el mismo PIC.

Ahora quiero que salga la misma por la pata GPIO,0 , pero no sale, siempre a 0 voltios.

La cosa es que usando el MPLABSIM me lo simula bien, pero cuando paso el programa al PIC y lo ejecuto, mira con el osciloscopio, y nada de nada. Es posible, esta bien programado como puerto de salida.

ESta fue la rutina que hize para pasar el valor al puerto GPIO,

BUCLE         BTFSS   GPIO,2
            GOTO    ESCERO
            BSF   GPIO,0  ; es uno
            RETURN

ESCERO         BCF   GPIO,0
            RETURN
A ver que os parece.

Gracias

Un saludo
« Última modificación: 07 de Febrero de 2013, 08:53:13 por JoseLuis2801 »

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: señal PWM hacia otro puerto, del 12F617
« Respuesta #1 en: 07 de Febrero de 2013, 14:08:59 »
Lo que se me ocurre asi a simple vista es que en principio GPIO,2 este a 0 y entonces ejecuta GOTO    ESCERO, pone a 0 GPIO,0 y al ejecutar el RETURN como no fue llamado por un CALL, el programa se perdera o ira a cualquier sitio y GPIO,0 estara siempre a 0

Para retornar con RETURN, tienes que llamarlo con CALL, pero tienes que cambiar el programa, asi tal y como lo tienes no te funcionaria, ya que si lo llamas con CALL al retornar haria BSF   GPIO,0 aunque GPIO,2 este a 0.

Saludos.

Desconectado JoseLuis2801

  • PIC16
  • ***
  • Mensajes: 168
Re: señal PWM hacia otro puerto, del 12F617
« Respuesta #2 en: 07 de Febrero de 2013, 16:24:22 »
Si tapi8, es que no voy a poner todo el programa, es largo, pero si viene de un call, esta es la parte donde lo llama:


            MOVLW   27h
         MOVWF   CONTC
         MOVLW   75h
         MOVWF   CONTB
      
         CALL   PWM   ;  Vgs = Vcc
         CALL    BUCLE
         
         GOTO    INIC2

FIN         NOP
         END

La rutina PWM se ejecuta perfectamente, vuelve a CALL BUCLE, pero,.....no va.

Debería funcionar entonces, Bueno , tengo que dar con ello, os cuento........

Un saludo
« Última modificación: 07 de Febrero de 2013, 16:30:36 por JoseLuis2801 »

Desconectado JoseLuis2801

  • PIC16
  • ***
  • Mensajes: 168
Re: señal PWM hacia otro puerto, del 12F617
« Respuesta #3 en: 08 de Febrero de 2013, 09:26:24 »
NDA HAY AGLUN TIPO DE CONFLICTO, FUNCIONAS A LA PERFECCION SIN PONER LA RUTINA, PERO PONIENDOLA SIGUE FUNCIONANADO PERFECTO EL PUERTO GPIO,2, PERO POR EL GPIO,0 NO SALE SEÑAL pwm ALGUNA.

aHORA HE PROBADO ASI:

----------------------------

BUCLE         BTFSC   GPIO,2
            GOTO    NOESCERO
            BCF      GPIO,0   
            RETURN

NOESCERO      BSF      GPIO,0
            RETURN

------------------------------

UN SALUDO

Desconectado tapi8

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1506
Re: señal PWM hacia otro puerto, del 12F617
« Respuesta #4 en: 08 de Febrero de 2013, 10:46:59 »
¿Eses dos PWMs tienen la misma frecuencia?

¿Por que chequeas si GPIO,2 esta a 1? Eres tu el que lo pones a 1, por tanto si cuando lo pones a 1 en vez de hacer BSF  GPIO,2 haces esto:

movlw  0000 0101  ; para poner GPIO,2 y GPIO,0 a 1
movwf   GPIO         ; aqui comienza el PWM

Ya tendrias los dos a 1 para empezar el PWM, despues bajaras cada uno (pondras a 0) a su debido tiempo, por ejemplo asi:

call      DELAY         ; o con un TIMER mejor aun
bcf      GPIO,0        ; bajamos uno de ellos o los dos eso depende
call      DELAY         ; pongo asi pero puede ser un tiempo diferente
bcf      GPIO,2

Si explicas lo que quieres te podremos ayudar mejor.

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
Re: señal PWM hacia otro puerto, del 12F617
« Respuesta #5 en: 08 de Febrero de 2013, 13:26:58 »
Estas definiendo a GPI0 como salida?
Firmat - Santa Fe - Argentina

www.TodoPic.net

Solo se tiran piedras, al arbol que tiene frutos...

Desconectado JoseLuis2801

  • PIC16
  • ***
  • Mensajes: 168
Re: señal PWM hacia otro puerto, del 12F617
« Respuesta #6 en: 10 de Febrero de 2013, 08:53:41 »
Si esta como salida todopic.

Aver, no hay problema XQ he hecho un puente con un cable de cobre del GPIO,2 al GPIO,0 , y por supuesto he hecho un agujerillo en la pista del GPIO,2 para que ambos puertos no esten conectados.

Tapi8, yo leo el estado del GPIO,2, y en funcion de ello, escribo en el GPIO,0 un 0 o un 1.  El 12F617 tiene 2 salidas PWM, yo me he currado para la PWM simple, la programo, y su señal  sale por el puerto GPIO,2, concretamente la llaman P1B. Todo perfecto. Aplicación:

En un pequeño avion de R/C de turbina electrica, un driver PWM para iluminar las toberas, y que en funcion del gas, el pulso positivo sea mas o menos largo:




Luego esta la salida P1B , que esta en el puerto GPIO,0, pero esa es para el modo avanzado , de todas formas como tengo que rediseñar el circuito electrico XQ ya no necesito el Optoacoplador para nada, ya que todo tira de la misma bateria, así que no voy a currarme el modo avanzado, no es necesario, coin la salida simple tengo mas que suficiente.

Gracias a ámbos

Un saludo
« Última modificación: 10 de Febrero de 2013, 11:56:35 por JoseLuis2801 »