Autor Tema: Conmutacion audio con 16F87  (Leído 6203 veces)

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

Desconectado txema

  • PIC10
  • *
  • Mensajes: 13
Re: Conmutacion audio con 16F87
« Respuesta #15 en: 18 de Julio de 2007, 16:46:24 »
Hola:
Despues de intentar probar el diseño, mi primera programacion, me encuentro con el famoso mensaje "error de verificacion en la direccion....." (mi bautizo en disgustos).
Consulta en foros, pruebas de configuracion  con el Winpic800 y el ICprog (drivers incluidos), pruebas de cofiguracion de los puertos...........horas y dias perdidos.
Fue pasar del Windows XP, volver al Windows 98 y la programacion...........  :-/....... FUNCIONO A LA PRIMERA..
Entrando en el asunto:
Montado el diseño, con los pulsadores NA no responde adecuadamente.
Probado con interruptores mecanicos da una respuesta simpatica. Los cambios de canal, descansan sobre el canal 0.
Es decir con los interruptores en off se activa el canal 0.
Presiono el interruptor 1, y automaticamente se activa el canal 1 y se desactiva el 0.
Presiono para desactivar el interruptor 1 y automaticamente se desactiva el canal1 y se activa el canal 0.
Con el canal 2 ocurre lo mismo.
Pero si esta accionado el canal 1 y despues acciono el canal 2 la respuesta no es buena.
Lo cual no esta nada mal, vamos por el buen camino, pero no es exactamente lo que se buscaba (conmuto un canal y se de-conmutan los demas).
De vuelta a la carga.
Voy ha hacer algunas pruebas con cambios en la programacion y haber que pasa.
Os comentare los resultados que se vayan produciendo.   

Saludos y gracias.





Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3610
    • Impresiones en 3D
Re: Conmutacion audio con 16F87
« Respuesta #16 en: 19 de Julio de 2007, 18:06:46 »
Hola. ¿Podrìas poner el diagrama del circuito que estas usando para poder ver la falla?

Saludos.  :-/ :-/
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado Juan_PIC

  • PIC12
  • **
  • Mensajes: 84
Re: Conmutacion audio con 16F87
« Respuesta #17 en: 19 de Julio de 2007, 18:42:58 »
Hola Txema. La idea de la multiplexacion es muy buena, y te ahorrarias patas del micro. Ahora, si lo que queres es hacerlo de ese modo, te recomendaria que apliques defines.

#define    RB0   MOVLW   b'00000001'       ;fiajte si el compilador te deja definir estos nombres.
#define    RB1   MOVLW   b'00000010'     
..... ETC...


O bien, no pongas ningun define, y en el programapone el literal directamente en el puerto.


Otra cosa. Si lo que necesitas es que tus conmutaciones sean seguidas y no por saltos (me refiero a que no pasas de la 0 a la 2 sin pasar por la 1), usa las instrucciones RLF y RRF.

Espero haber sido claro, xq estoy medio apurado. Un saludo. :P
Cuando se ponen límites, la mente humana comienza a buscar maneras de romperlos.

Desconectado txema

  • PIC10
  • *
  • Mensajes: 13
Re: Conmutacion audio con 16F87
« Respuesta #18 en: 23 de Julio de 2007, 16:29:18 »
Hola:
Ando estancado.
"Leon pic" me decía si podía poner el diagrama del circuito que estoy usando para poder localizar algun error.

Espero estar ahogandome en un vaso de agua.
No veo la forma de decirle al PIC, que de prioridad al ultimo cambio de estado en una RA.
Es decir, por ejemplo:
Tengo activada RA1, activo RA2 y automaticamente se desactiva RA1.
Claro, y es que lo quiero todo: comer la sopa con cuchara, que haya papel hienico en el water.....(menos mal que nos queda el buen humor).

He visto un articulo en el que se consigue, pero usando 74HC148, 74HC138, 74HC173,74HC04, 74HC4051, 74HC238...., en fin, un cirio Pascual.

Haber si el asunto no le viene demasiado grande a nuestro querido PIC. Aunque mas creo que el asunto me viene grande a mi.

En cuanto a la directiva #DEFINE, tengo entendido que define una cadena de sustitucion de texto.
Ejemplo
#DEFINE <nombre> [<apellido>]
Donde quiera que <nombre> se encuentre, en el ensamblador se sustiturá por <apellido>.
No entiendo, como usando esta directiva, se puede solventar el problema.

Abriendo la puerta de la multiplexacion que aportaba "motordecontinua". ¿Algun consejo?.

Saludos

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3610
    • Impresiones en 3D
Re: Conmutacion audio con 16F87
« Respuesta #19 en: 23 de Julio de 2007, 21:47:54 »
Hola. Bueno, en el diagrama lo veo perfecto. Lo que no entiendo cual es el problema, ya que por lo que decís la reacción que hace el pic en los puertos, pues, está en el programa. Si te fijas bien, cuando corregis los estados, estas corrigiendo todo el puerto

Estan_a_000   movlw   b'00000001'    ;El registro W se carga con valor b`00000001´
                     movwf   0X06             ;Carga el valor W en PORTB
                     movlw   b'00000001'    ;El registro W se carga con valor b`00000001´
                     movwf   0X07             ;Carga el valor W en PORTC     
                     goto   Loop                 ;Salta a la etiqueta Loop

Estan_a_010   movlw   b'00000100'   ;El registro W se carga con valor b`00000100´
                     movwf   0X06             ;Carga el valor W en PORTB
                     movlw   b'00000100'    ;El registro W se carga con valor b`00000100´
                     movwf   0X07             ;Carga el valor W en PORTC
                     goto   Loop                 ;Salta a la etiqueta Loop

Si no queres que los demas bit se vean afectados, debes usar BCF o BSF, el problema se te va a presentar, para armar el software, cuando quieras poner, por ejemplo pasarlo de 0 a 1 (se está claro usando estas mismas subrutinas)

Fijate mi otra sujerencia anterior, de usar un interruptor como modo.

Entiendo que lo que quieres es mezclar dos o mas entradas. Ten encuenta que el pic no tiene ni idea de que es lo que queres, por ejemplo, quiero mezclar dos entradas, presiono dos pulsadores, pero ahora se me ocurre seleccionar solo una entrada, y presiono la tecla correspondiente. El pic va a mezclar tres entradas porque no le has dicho antes que quieres seleccionar una entrada.

Aclarame bien tu problema y como queres que se comporte bien el programa (seleccionar solo una entrada, mezclar las entradas o una combinación de ambas)

Lo de define, no te va a solucionar el problema, es como vos decis, lo que te va ayudar es hacer más prolijo el programa y por ende sea más facil de leer y programar y hacer modificaciones, y etc.

Saludos :-/ :-/

Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado txema

  • PIC10
  • *
  • Mensajes: 13
Re: Conmutacion audio con 16F87
« Respuesta #20 en: 24 de Julio de 2007, 05:23:58 »
Hola:
De momento la cosa debiera ser sencilla. Solo quiero seleccionar una entrada, nada mas. Pero que al conmutar una entrada, se deconmute automaticamente la que estuviera conmutada previamente. No se si me explico bien. Ese es el problemon al que no veo salida.
Un saludo y gracias.

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
Re: Conmutacion audio con 16F87
« Respuesta #21 en: 24 de Julio de 2007, 10:33:19 »
Hola Txema, lo que necesitas es simple, aqui un ejemplito, solo tienes que definir las entradas y salidas
y el programita seria
Código: ASM
  1. ; conmutador de 4 canales
  2. ;entradas de pulsadores NA (a masa) para seleccion por puerto A
  3. ;salidas a led y llave cd4066 por puerto b
  4.  
  5.  
  6.  
  7.  
  8.         clrf    portb           ;apago todo el puerto b
  9. testear
  10.         btfss   porta,0         ;esta pulsado? si, activo, si no salto
  11.         call    encender0
  12.         btfss   porta,1
  13.         call    encender1      
  14.         btfss   porta,2
  15.         call    encender2      
  16.         btfss   porta,3
  17.         call    encender3
  18.         goto    testear ;       ;queda en loop esperando que pulsen alguna
  19.        
  20. encender0
  21.         clrf    portb
  22.         bsf     portb,0
  23.         return
  24.        
  25. encender1
  26.         clrf    portb
  27.         bsf     portb,1
  28.         return
  29.  
  30. encender2
  31.         clrf    portb
  32.         bsf     portb,2
  33.         return
  34.  
  35. encender3
  36.         clrf    portb
  37.         bsf     portb,3
  38.         return

La idea seria, que un loop te verifica si se pulsa alguno de los pulsadores, y en ese caso, apaga el puerto de salida , y solo enciende el seleccionado
luego, queda nuevamente en el loop esperando otra pulsacion....

espero te sirva  :-/

un abrazo

Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

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

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
Re: Conmutacion audio con 16F87
« Respuesta #22 en: 24 de Julio de 2007, 10:42:31 »
Y aqui tienes un error, ya que si no se pulsan, siempre va a estan a 100  :shock:

      btfss   0X05,2      ;Chequea el estado de RA1.Si bit 2 del registro PORTA es 0 se
               ;ejecuta siguiente instruccion.Si bit 2 del registro PORTA es 1
               ;la instruccion que sigue a esta se ignora y se salta
      goto   Estan_a_000   ;Salta a la etiqueta "ESTAN_A_000"
      goto   Estan_a_100

Estan_a_000   movlw   b'00000001'   ;El registro W se carga con valor b`00000001´

te falta otro btfss... aunque pareceria obvio, no lo es!  :-)

Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

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

Desconectado txema

  • PIC10
  • *
  • Mensajes: 13
Re: Conmutacion audio con 16F87
« Respuesta #23 en: 24 de Julio de 2007, 17:53:54 »
Hola:
He corregido el programa con las instrucciones que me indicaste y.....
......casi me saltan las lagrimas al ver funcionar perfectamente el proyecto.
Muchas gracias a todos los que habeis participado y sobretodo a Leonpic y Norberto (por lo que me habeis sufrido y por entender lo que buscaba a pesar de mis torpes explicaciones).
Un saludo genios.

Desconectado Leon Pic

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 3610
    • Impresiones en 3D
Re: Conmutacion audio con 16F87
« Respuesta #24 en: 24 de Julio de 2007, 18:16:33 »
Hola Txema.  Me alegro de que hallas podido hacer funcionar el proyecto.

Suerte y fue un gusto ayudarte.

Saludos  :-/ :-/
Jesús dijo, yo soy el CAMINO, la VERDAD y la VIDA, nadie llega al PADRE si no es por mi.

Desconectado todopic

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3495
    • http://www.todopicelectronica.com.ar
Re: Conmutacion audio con 16F87
« Respuesta #25 en: 24 de Julio de 2007, 23:14:07 »
Hola Txema, mucho me alegro que funciono!, y ahora, te propongo que investigues para que esto funcione via MIDI
ya que todas las pedaleras actuales funcionan MIDI, habria que direccionarlas tambien la conmutacion con este protocolo  :-/

Nos mantenemos en contacto

Norberto
Firmat - Santa Fe - Argentina

www.TodoPic.net

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