TODOPIC
Microcontroladores PIC => * PROYECTOS * => Mensaje iniciado por: fjam_rock en 31 de Mayo de 2011, 17:48:03
-
Hola a todos, este es mi primer post.
Hace tiempo que tengo ganas de armar una batería electrónica, pero a diferencia de las ya existentes, quiero que los pads funcionen de una forma similar que las teclas de los teclados con "velocity sensitive", esto significa (en pocas palabras) que deberé relacionar la intensidad del golpe con el tiempo que demora en presionar 2 botones no alineados.
Actualmente tengo un "esqueleto" de batería hecho de pvc y pads de madera y goma, que tendré que modificar.
Pretendo darle "vida" a esto con un pic 16f877.
Espero que el tiempo no me falte y que me puedan ayudar con ideas o con las dudas que me puedan surgir.
Salu2!
-
Hola nuevamente.
He estado haciendo un código para enviar datos midi por USART. Aún no compilo ni nada por el estilo, es sólo para saber si con este punto de partida funcionaría el envío.
De a poco lo ire completando.
Espero que se den el tiempo de revisar y decirme si así serviría.
Acá va el código:
;INICIALIZACION
BSF STATUS, RP0 ;BANK 1
BCF TRISC,6 ;SE HABILITA PIN COMO SALIDA TX
MOVLW 0X09 ;SET BAUD RATE
MOVWF SPBRG
BSF TXSTA,TXEN ;SE HABILITA TRANSMISION
BCF TXSTA,SYNC ;SE HABILITA PUERTO SERIAL
BCF STATUS, RP0 ;BANK 0
BSF RCSTA,SPEN ;SE HABILITA PUERTO SERIAL
;TRANSMISION
TX BTFSS PIR1,4 ;SE ESPERA FLAG PARA CARGAR DATO EN TXREG
GOTO $-1
CALL MIDI ;SE CARGA VALOR EN TXREG
BTFSS TXSTA,TRMT ;SE ESPERA FLAG DE FIN DE TRANSMISION
GOTO $-1
GOTO TX ;SE VUELVE A TRANSMITIR
La etiqueta 'MIDI' servirá para cargar los datos. Eso será el siguiente paso.
Salu2!
-
A nadie le interesa esto!? :shock: :? :(
Bueno, puede que en el futuro aparezca alguien... de ser así, les cuento que ya logré enviar mensajes midi. Actualmente estoy enviando las notas: 0X24, 0X26, 0X2E, 0X30, 0X2F, 0X2D, 0X31 y 0X33, correspondientes a bombo, caja, hihat, 3 toms, crash y ride.
Por ahora necesito algo de ayuda: alguien tiene algún código o sabe como funciona el velocity sensitive?
Espero me puedan ayudar.
Salu2!
ps:
Para enviar midi usé el siguiente código:
BSF STATUS, RP0 ;BANK 1
BCF TRISC,6 ;SE HABILITA PIN COMO SALIDA TX
MOVLW 0X09 ;SET BAUD RATE
MOVWF SPBRG
BSF TXSTA,TXEN ;SE HABILITA TRANSMISION
BCF TXSTA,SYNC ;SE HABILITA PUERTO SERIAL
BCF STATUS, RP0 ;BANK 0
BSF RCSTA,SPEN ;SE HABILITA PUERTO SERIAL
NOTE_ON
MOVLW 0X99 ;NOTE ON
CALL TX ;SE TRANSMITE NOTE ON
;NOTE
BCF STATUS, RP0 ;BANK 0
MOVF TONO,W ;NOTA
CALL TX ;SE TRANSMITE NOTA
;VELOCITY
MOVLW 0X7F ;INTENSIDAD
CALL TX ;SE TRANSMITE INTENSIDAD
RETURN
;TRANSMISION
TX BCF STATUS, RP0 ;BANK 0
BTFSS PIR1,4 ;SE ESPERA FLAG PARA CARGAR DATO EN TXREG
GOTO $-1
MOVWF TXREG
BSF STATUS, RP0 ;BANK 1
BTFSS TXSTA,TRMT ;SE ESPERA FLAG DE FIN DE TRANSMISION
GOTO $-1
RETURN ;SE VUELVE A TRANSMITIR
El resto es llamar las funciones al apretar los botones.