Autor Tema: Necesito una ayuda con midi y pic  (Leído 3092 veces)

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

Desconectado overnat

  • PIC10
  • *
  • Mensajes: 12
Necesito una ayuda con midi y pic
« en: 29 de Mayo de 2009, 04:55:28 »
Hola ,

Lo primero que quiero decir es que soy muy novato en todo esto y es posible que se lean burradas grandiosas :) .


Estoy intentando programar un pic 16F84A para enviar mensajes midi.

En principio he comenzado a intentar mandar un mensaje automatico desde el pic , es decir , he hecho un script que imprime con printf el mensaje midi .

Segun he estado leyendo para enviar mensajes midi se debe utilizar una velocidad de 31250 bps , por lo que me es imposible testear el resultado por el puerto serial del pc .

El script que utilizo es este

main {
while(TRUE)
{
printf("0x90"); //Esto se supone que enviaria el bit de status midi Note On
printf("0x40"); //Esto la nota seleccionada
printf("0xF7");//Esto seria el velocidad de la nota
delay_us(200);
printf("0x80"); //Esto  enviaria el bit de status midi Note Off
printf("0x40"); //Esto la nota seleccionada
printf("0xF7");//Esto seria el velocidad de la nota

}

}


Como veis mas basico no se puede :) .

En teoria cuando inicio el chip tendria que enviar continuamente la nota 0x40 , pero estoy capturando los datos enviados por midi con un programa llamado Midi Monitor 2002 y este no me muestra nada de nada .

Podeis ayudarme un poco con el tema , la info que encuentro esta mas que nada en ensamblador y yo de esto poco + q poco .
Salu2

Desconectado overnat

  • PIC10
  • *
  • Mensajes: 12
Re: Necesito una ayuda con midi y pic
« Respuesta #1 en: 01 de Junio de 2009, 21:47:47 »
Hola de nuevo

Os dejo la respuesta a mi pregunta por si a algun otro le vale .

El tema del midi es "bastante sencillo" de implementar en un microcontrolador , ya que funciona con señales TTL y comunicacion muy similar a la comunicacion en serie RS232 .

El problema que se me planteaba a mi es que no conseguia enviar los dichosos mensajes midi al controlador midi conectado al pc .

El primer script

/*Aqui tendremos nuestros includes y la configuracion del puerto RS232 .La velocidad en baudios para el midi es de 31250 bps */

main {
while(TRUE)
{
printf("0x90"); //Esto enviaria el bit de status midi Note On
printf("0x40"); //Esto la nota seleccionada
printf("0xF7");//Esto seria el velocidad de la nota
delay_us(200); //Espero y apago la nota .
printf("0x80"); //Esto  enviaria el bit de status midi Note Off
printf("0x40"); //Esto la nota seleccionada
printf("0xF7");//Esto seria el velocidad de la nota

}
}

El script anterior no funciona correctamente , por que la funcion printf no respeta la velocidad de envio de datos que hemos configurado ( Por lo menos a mi no me lo hace ) . Pero si utilizamos la funcion putc(); todo funcionara correctamente y nuestro pic enviara la nota que hallamos seleccionado ó modificara el control seleccionado .

Salu2

Desconectado Hellion

  • PIC10
  • *
  • Mensajes: 1
Re: Necesito una ayuda con midi y pic
« Respuesta #2 en: 13 de Febrero de 2011, 11:54:06 »
Hola de nuevo

Os dejo la respuesta a mi pregunta por si a algun otro le vale .

El tema del midi es "bastante sencillo" de implementar en un microcontrolador , ya que funciona con señales TTL y comunicacion muy similar a la comunicacion en serie RS232 .

El problema que se me planteaba a mi es que no conseguia enviar los dichosos mensajes midi al controlador midi conectado al pc .

El primer script

/*Aqui tendremos nuestros includes y la configuracion del puerto RS232 .La velocidad en baudios para el midi es de 31250 bps */

main {
while(TRUE)
{
printf("0x90"); //Esto enviaria el bit de status midi Note On
printf("0x40"); //Esto la nota seleccionada
printf("0xF7");//Esto seria el velocidad de la nota
delay_us(200); //Espero y apago la nota .
printf("0x80"); //Esto  enviaria el bit de status midi Note Off
printf("0x40"); //Esto la nota seleccionada
printf("0xF7");//Esto seria el velocidad de la nota

}
}

El script anterior no funciona correctamente , por que la funcion printf no respeta la velocidad de envio de datos que hemos configurado ( Por lo menos a mi no me lo hace ) . Pero si utilizamos la funcion putc(); todo funcionara correctamente y nuestro pic enviara la nota que hallamos seleccionado ó modificara el control seleccionado .

Salu2

Hola overnat. La verdad es que tu respuesta me ha aclarado bastante cómo configurar el PIC, pero el caso es que tras comprobar (con osciloscopio) que envía los 3 bytes (note on, nota, duración) lo he conectado a un aparato con entrada midi y no hace nada. El canal midi al que me dirijo es el correcto. ¿Alguna idea?

Gracias

Desconectado Modulay

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 2651
Re: Necesito una ayuda con midi y pic
« Respuesta #3 en: 13 de Febrero de 2011, 16:28:52 »
Así a ojo esto está mal:

printf("0xF7");//Esto seria el velocidad de la nota

El valor máximo para un byte de dato es 0x7F