Autor Tema: Mesa de mezclas  (Leído 21765 veces)

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

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
RE: Mesa de mezclas
« Respuesta #90 en: 28 de Marzo de 2006, 18:04:00 »
Hola fito20. probablemente la causa de que los pines del puerto A no funcionen como entradas sea que no as desactivado los convertidores A/D, de fabrica vienen configuradas como entradas analógicas y para que sean digitales debes desactivarlas.

Suerte, un saludo

Atte. CARLOS

La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado fito20

  • PIC12
  • **
  • Mensajes: 91
RE: Mesa de mezclas
« Respuesta #91 en: 29 de Marzo de 2006, 03:21:00 »
Ah, pues no lo sabia. Mirare en el datasheet para desactivar el convertidos A/D. En breve me pongo con ello. Gracias Carlos Giño

Desconectado fito20

  • PIC12
  • **
  • Mensajes: 91
RE: Mesa de mezclas
« Respuesta #92 en: 29 de Marzo de 2006, 12:42:00 »
Lo del puerto A ya esta solucionado. Tal y como me dijiste, solo habia que desactivar el convertidor.

He ensayado la rutina que me pasaste "output" para comunicacion SPI pero no funciona Carlos, no cambia la posicion del pote. Mañana lo intentare con otra que tengo. Se te ocurre algo?

Un saludo.

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
RE: Mesa de mezclas
« Respuesta #93 en: 29 de Marzo de 2006, 14:23:00 »
Hola fito20. la rutina que yo te habia enviado era para los primeros potes que teniamos pensado usar, lo cual no quiere decir que para estos potes sea la misma trama de comunicacion, por lo que deberas mirar en el datasheet cual es la trama de estos ultimos.

Un saludo y suerte.

Atte. CARLOS.
La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado fito20

  • PIC12
  • **
  • Mensajes: 91
RE: Mesa de mezclas
« Respuesta #94 en: 29 de Marzo de 2006, 14:56:00 »
Ok. Mañana sin falta lo repasare. Un saludo.

Desconectado fito20

  • PIC12
  • **
  • Mensajes: 91
RE: Mesa de mezclas
« Respuesta #95 en: 01 de Abril de 2006, 04:37:00 »
El tema esta mas o menos solucionado...al arrancar pongo a 1 el SHUTDOWN y un 0 en PRESET, los potes se colocan a 25K cada uno, luego pongo un 1 en PRESET y se mantiene la posicion.

Sin embargo el programa se esta ejecutando continuamente y el pin de PRESET pasa continuamente de 0 a 1...pongo el programita, seguro que es una tonteria, pero no veo donde esta el error para que se este ejecutando continuamente el programa...

Codigo:
reset   org   0x00         ; origen del programa, aquí comenzará siempre que ocurra un reset
   goto    inicio        ; salta a "inicio"
   
inicio   bcf   STATUS,5
   bcf   STATUS,6
   clrf   POT_GANANCIA
   clrf   PORTA
   clrf   PORTB
   clrf   PORTC
   bsf   STATUS,5     ; banco1
   movlw   0x06
   movwf   ADCON1
   movlw   0XCF
   movwf   TRISA
   movlw   b"11111111"  ;
   movwf   TRISB        ; y pasa el valor a trisb
   movlw   b"00001000"
   movwf   TRISC
   bcf   STATUS,5     ; banco 0
   
   bsf   PORTC,1
   bsf   PORTC,6   
   call   Retardo_100ms
   bcf   PORTC,2
   call   Retardo_100ms
   bsf   PORTC,2
   
   
Retardo_100ms   movlw   d"100"         ; Aporta 1 ciclo máquina. Este es el valor de "M".
      goto   Retardos_ms      ; Aporta 2 ciclos máquina.

Retardos_ms   movwf   R_ContB         ; Aporta 1 ciclo máquina.

R1ms_BucleExterno   movlw   d"249"      ; Aporta Mx1 ciclos máquina. Este es el valor de "K".
         movwf   R_ContA         ; Aporta Mx1 ciclos máquina.

R1ms_BucleInterno   nop            ; Aporta KxMx1 ciclos máquina.
         decfsz   R_ContA         ; (K-1)xMx1 cm (cuando no salta) + Mx2 cm (al saltar).
         goto   R1ms_BucleInterno      ; Aporta (K-1)xMx2 ciclos máquina.
         decfsz   R_ContB         ; (M-1)x1 cm (cuando no salta) + 2 cm (al saltar).
         goto   R1ms_BucleExterno    ; Aporta (M-1)x2 ciclos máquina.
         
         return            ; El salto del retorno aporta 2 ciclos máquina

;------------------------------------------
   end           ; se acabó
;------------------------------------------

Desconectado fito20

  • PIC12
  • **
  • Mensajes: 91
RE: Mesa de mezclas
« Respuesta #96 en: 02 de Abril de 2006, 04:32:00 »
Bueno, este problema parece que ya esta resuelto. Sigo investigando.

Desconectado fito20

  • PIC12
  • **
  • Mensajes: 91
RE: Mesa de mezclas
« Respuesta #97 en: 03 de Abril de 2006, 06:45:00 »
Hola Carlos, hay un chaval en el foro que me esta echando una mano con la comunicacion con el pote. En cuanto tenga la rutina lista te la paso. Un saludo.

Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
RE: Mesa de mezclas
« Respuesta #98 en: 03 de Abril de 2006, 20:34:00 »
Hola fito20, me parece bien tener una segunda opinion, ya que como te e comentado yo nunca realice ningun circuito con potes digitales.

Tambien seria interesante que lo que se avance se vaya colocando en el foro para que todos lo puedan ver.

Un saludo.

Atte. CARLOS.
La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado fito20

  • PIC12
  • **
  • Mensajes: 91
RE: Mesa de mezclas
« Respuesta #99 en: 04 de Abril de 2006, 03:28:00 »
En cuanto tenga el codigo de comunicacion lo subo (creo que ya queda muy poco).

Un saludo.

Desconectado fito20

  • PIC12
  • **
  • Mensajes: 91
RE: Mesa de mezclas
« Respuesta #100 en: 04 de Abril de 2006, 04:41:00 »
Carlos, te pongo el link del hilo donde estamos viendo la comunicacion con el POTE

http://miarroba.com/foros/ver.php?foroid=6510&temaid=5071690&ultimomsg=si

Un saludo.

Desconectado fito20

  • PIC12
  • **
  • Mensajes: 91
RE: Mesa de mezclas
« Respuesta #101 en: 04 de Abril de 2006, 10:40:00 »
POR FIN!! Carlos, al fin he conseguido que el potenciometro se mueva...pero es algo raro...te explico lo que he hecho.

He desarrollado un codigo en el que al accionar un pulsador, manda la secuencia de 16 bits en la que (supuestamente) debe colocar el pote 2 en una determinada posicion.

Sin embargo, al pulsar, se actua sobre el pote 1, y no lo coloca en una posicion, sino que al ir pulsandolo varias veces, va aumentando la resistencia del mismo hasta llegar a los 50K...

Te adjunto el codigo por si ves que es lo que esta pasando.

Un saludo.

Codigo:
;---------------Encabezado-------------

   LIST   p=16f876       
   radix   hex       
   INCLUDE   <P16F876.INC>

;------------mapa de memoria---------

   
reg1   equ   0x20   ; Estos 3 registros los utilizaré
reg2   equ   0x21   ; para hacer el retardo
reg3   equ   0x22           
R_ContB   equ   0x23
R_ContA   equ   0x24
R_ContC   equ   0x25
R_ContE   equ   0x28
R_ContD   equ   0x29

temp1   equ   0x26
temp2   equ   0x27

#DEFINE   UP   PORTB,1      ; direccion del pulsador UP
#DEFINE   DOWN   PORTB,2      ; direccion del pulsador DOWN
#DEFINE   MIDS   PORTB,3


#DEFINE   CS1   PORTC,0      ; direccion del pin de seleccion del CHIP 1
#DEFINE   PR   PORTC,2      ; pin del PRESET para poner los potes a midscale
#DEFINE   SHDN   PORTC,6

POT_GANANCIA   EQU   .32


GR_GA   macro
   bcf   PORTC,0      ; pone un 0 para activar pot graves-ganancia
   endm


NO_CHIP   macro
   bsf   PORTC,0      ; pone un 1 para desactivar pot graves-ganancia
   endm


;-------Configuración de puertos-------

reset   org   0x00         ; origen del programa, aquí comenzará siempre que ocurra un reset
   goto    inicio        ; salta a "inicio"
   
inicio   bcf   STATUS,RP0
   bcf   STATUS,RP1
   clrf   POT_GANANCIA
   clrf   PORTA
   clrf   PORTB
   clrf   PORTC
   bsf   STATUS,RP0    ; banco1
   movlw   0x06
   movwf   ADCON1
   movlw   0XCF
   movwf   TRISA
   movlw   b"11111111"  
   movwf   TRISB           ; y pasa el valor a trisb
   movlw   b"00010000"
   movwf   TRISC
   movlw   B"10000000"   
   movwf   SSPSTAT      ; cargo el reguistro SSPSTAT con el valor anterior
   bcf   STATUS,RP0   ; banco 0
   movlw   B"00110010"   ; no collision, no overflow, habilito el puerto SPI, clock inactivo en nivel alto, FOSC/64
   movwf   SSPCON      ; pasamos estos valores a control SPI
   
   call   Retardo_1s
   NO_CHIP         ; llama a la macro de deshabilitar los 4 potes.
   call   Retardo_1s

   bsf   PORTC,1      ; ponemos un 1 en LED para encenderlo y ver que funciona el circuito
;   bsf   PORTC,6       ; ponemos un 1 en SHUTDOWN
;   bsf   PORTC,2      ; ponemos un 1 en PRESET

   call   Retardo_1s

test   btfsc   PORTB,2
   call   subdown
   goto   test


subdown   GR_GA
   bsf   PORTC,6
   bsf   PORTC,2
   call   Retardo_1s
   bsf   PORTC,7
   bcf   STATUS,RP1
   bcf   STATUS,RP0   ; banco 0
   movlw   B"00000001"   ; apunta a la direccion RDAC2
   call   spien
   movlw   B"0001111"   ; coloca el pote en la posicion 3
   call   spien
   NO_CHIP
   call   Retardo_1s
   bcf   PORTC,7
   return

output   movwf   SSPBUF
   bsf   STATUS,RP0   ; banco 1
ret   btfss   SSPSTAT,BF
   goto   ret
   bcf   STATUS,RP0   ; banco 0
   movf   SSPBUF,W
   return
   
   

;Envia el byte que viene en el registro "w" mediaante el protocolo spi.


spien   call   Retardo_100ms
   movwf   temp1      ;Salva el byte a transmitir en el registro temporal "temp1"
   movlw   0x08
   movwf   temp2      ;Inicializa el contador
   
bck   bsf   PORTC,5      ;Sube data
   btfss   temp1,7      ;Comprueba el bit y lo baja si es cero
   bcf   PORTC,5
   nop         ;Envia el bit
   bsf   PORTC,3
   nop         ;Da un pulso de reloj
   bcf   PORTC,3
   nop
   rlf   temp1,f      ;Rotamos a la izquierda "temp1"
   decfsz   temp2,f      ;Comprobamos el contador, para ver si hemos enviado los 8 bits
   goto   bck      ;Si no, repetimos el bucle
   bcf   PORTC,5
   return         ;Fin

 
Retardo_1s            ; La llamada "call" aporta 2 ciclos máquina.
   movlw   d"10"         ; Aporta 1 ciclo máquina. Este es el valor de "N".
   goto   Retardo_1Decima      ; Aporta 2 ciclos máquina.

Retardo_1Decima
   movwf   R_ContC         ; Aporta 1 ciclo máquina.
R1Decima_BucleExterno2
   movlw   d"100"         ; Aporta Nx1 ciclos máquina. Este es el valor de "M".
   movwf   R_ContB         ; Aporta Nx1 ciclos máquina.
R1Decima_BucleExterno
   movlw   d"249"         ; Aporta MxNx1 ciclos máquina. Este es el valor de "K".
   movwf   R_ContA         ; Aporta MxNx1 ciclos máquina.
R1Decima_BucleInterno          
   nop            ; Aporta KxMxNx1 ciclos máquina.
   decfsz   R_ContA,F      ; (K-1)xMxNx1 cm (si no salta) + MxNx2 cm (al saltar).
   goto   R1Decima_BucleInterno   ; Aporta (K-1)xMxNx2 ciclos máquina.
   decfsz   R_ContB,F      ; (M-1)xNx1 cm (cuando no salta) + Nx2 cm (al saltar).
   goto   R1Decima_BucleExterno   ; Aporta (M-1)xNx2 ciclos máquina.
   decfsz   R_ContC,F      ; (N-1)x1 cm (cuando no salta) + 2 cm (al saltar).
   goto   R1Decima_BucleExterno2   ; Aporta (N-1)x2 ciclos máquina.
   return            ; El salto del retorno aporta 2 ciclos máquina.




Retardo_100ms            ; La llamada "call" aporta 2 ciclos máquina.
   movlw   d"100"         ; Aporta 1 ciclo máquina. Este es el valor de "M".
   goto   Retardos_ms      ; Aporta 2 ciclos máquina.

Retardos_ms
   movwf   R_ContD         ; Aporta 1 ciclo máquina.
R1ms_BucleExterno
   movlw   d"249"         ; Aporta Mx1 ciclos máquina. Este es el valor de "K".
   movwf   R_ContE         ; Aporta Mx1 ciclos máquina.
R1ms_BucleInterno
   nop            ; Aporta KxMx1 ciclos máquina.
   decfsz   R_ContE         ; (K-1)xMx1 cm (cuando no salta) + Mx2 cm (al saltar).
   goto   R1ms_BucleInterno      ; Aporta (K-1)xMx2 ciclos máquina.
   decfsz   R_ContD         ; (M-1)x1 cm (cuando no salta) + 2 cm (al saltar).
   goto   R1ms_BucleExterno    ; Aporta (M-1)x2 ciclos máquina.
   return            ; El salto del retorno aporta 2 ciclos máquina

;------------------------------------------
   end           ; se acabó
;------------------------------------------



Desconectado fito20

  • PIC12
  • **
  • Mensajes: 91
Re: Mesa de mezclas
« Respuesta #102 en: 09 de Abril de 2006, 09:53:09 »
Hola Carlos. Cuando puedas echale un ojo a este hilo, por favor.

http://www.todopic.com.ar/foros/index.php?topic=8127.15

Un saludo.