Autor Tema: 16f877 ayuda con asm para prender leds dentro de mi proyecto  (Leído 2309 veces)

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

Desconectado lucho_asd

  • PIC10
  • *
  • Mensajes: 36
16f877 ayuda con asm para prender leds dentro de mi proyecto
« en: 02 de Mayo de 2007, 21:00:13 »
Hola estoy haciendo un foot controler midi para un pedal de guitarra ya esta funcionando con los mensajes q me interesan, pero quiero hacer lo siguiente :

cuando yo pulso de rb0 a rb7 a masa mando un mensaje midi y lo q quiero agregar es prender leds de rd0 a rd7 para cada puslador q accione se entiende? la idea es q cuando pulso uno se prenda un led y cuando pulso otro se apague este y se prenda el correspondiente para el q pulse recien, soy nuevo en este tema basicamente lo q hice fue modificar el asm del original ya q los mensajes esos no me interesaban y leyendo un poco sobre el midi logre mandar 8 mensajes midis q me interesan para el proyecto (cambio de banco del pedal) ahora me gustaria saber si alguien me puede ayudar con la propuesta q presente recien!

MUCHISIMAS GRACIAS!!

UN SALUDO!!

Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: 16f877 ayuda con asm para prender leds dentro de mi proyecto
« Respuesta #1 en: 03 de Mayo de 2007, 07:07:18 »
Hola Lucho!

Se me ocurre que si utilizas pulsadores que conmuten dos circuitos, podes usar uno para el LED, y solucionas el problema de una forma muy sencilla. ¿Serviria?

Saludos!
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: 16f877 ayuda con asm para prender leds dentro de mi proyecto
« Respuesta #2 en: 03 de Mayo de 2007, 08:24:25 »
lucho_asd, algo que no me queda claro es si puede haber entradas en simultáneo en el PORTB.

Si es así, debieras sí o si, detectar la ULTIMA pulsación, sino, si solamente hay una pulsación activa a la vez, sería enviar al PORTD lo que hay en el PORTB pero invertido (ej, usando la instrucción CMF).
- 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 lucho_asd

  • PIC10
  • *
  • Mensajes: 36
Re: 16f877 ayuda con asm para prender leds dentro de mi proyecto
« Respuesta #3 en: 03 de Mayo de 2007, 19:32:13 »
antes q todo muchas gracias!!! lo que quiero hacer es con los pulsadores (no interruptor) del portb (del 0 al 7) aprovecharlos ademas q para mandar la señal midi correspondiente q manden 5v a cada portb (del 0 al 7)
esta es la parte del lenguaje de los pulsadores :

sw0   btfss PORTB,7
   goto sw0_on
   goto sw1

sw0_on   movlw .0 ; A1 del V-amp
   movwf ped_val
   call ctrlon
   call sw_dbnc

   
;-------------------------------------------


sw1   btfss PORTB,6
   goto sw1_on
   goto sw2

sw1_on   movlw .1 ; B1 del V-amp
   movwf ped_val
   call ctrlon
   call sw_dbnc

   

;-------------------------------------------


sw2   btfss PORTB,5
   goto sw2_on
   goto sw3

sw2_on   movlw .2 ; C1 del V-amp
   movwf ped_val
   call ctrlon
   call sw_dbnc

   


;-------------------------------------------


sw3   btfss PORTB,4
   goto sw3_on
   goto sw4

sw3_on   movlw .3 ; D1 del V-amp
   movwf ped_val
   call ctrlon
   call sw_dbnc

   

;-------------------------------------------


sw4   btfss PORTB,3
   goto sw4_on
   goto sw5

sw4_on   movlw .4 ; E1 del V-amp
   movwf ped_val
   call ctrlon
   call sw_dbnc

   

;-------------------------------------------


sw5   btfss PORTB,2
   goto sw5_on
   goto sw6

sw5_on   movlw .5 ;  A2 del V-amp
   movwf ped_val
   call ctrlon
   call sw_dbnc

   

;-------------------------------------------


sw6   btfss PORTB,1
   goto sw6_on
   goto sw7

sw6_on   movlw .6 ;  B2 del V-amp
   movwf ped_val
   call ctrlon
   call sw_dbnc

   

;-------------------------------------------


sw7   btfss PORTB,0
   goto sw7_on
   goto sw8

sw7_on   
   movlw .7 ;  C2 del V-amp
   movwf ped_val
   call ctrlon
   call sw_dbnc

   
      
;-------------------------------------------


sw8   btfss PORTD,7
   goto sw8_on
   goto sw9

sw8_on   
   call continue
   call sw_dbnc

   btfss PORTD,7 ; is sw. released?
   goto $-1
   call sw_dbnc

espero q sirva para guiarme, en todo caso les escribo el programa entero!!

MUCHAS GRACIASS!!

Saludos!


 

anything