Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

23/08/2012 #261


electrochispa si quieres trabajar midi usb lo mas importante primero es montar el circuito bien, con figurar el reloj bien, y tener el descriptor indicado, como te dije yo hice un comentario anterior el programa funciona no perfecto ero funciona yo lo monte con un 18f4550 y un reloj de 20Mhz hay dos carpetas en el zip uno es prueba middi alli adentro hay un archivo .h llamado descriptor ese archivo se lo cargas al pic ara que el cuando sea conectado a una c el le diga a la pc que es un controlador de audio. en la carpeta prueba midi 2 esta el programa que estuve haciendo también funciona aunque faltan algunos detalles, en el puerto d coloque 8 pulsadores y coloque un capacitor de 470nanofaradios entre el in 18 (Vusb) y tierra.
23/08/2012 #262

Avatar de fernandoae

Hola Josb86 pues te cuento que por ahora estoy comenzando con pulsadores (botones) pero si me facilitan tambien los ejemplos de código completos para ecordér y potenciómetro yo no me disgustaría para nada jajaja
Gente yo creo que con lo que comentamos en el foro con rachelies ya les da como para empezar a hacer sus cosas, ejemplos hay de todo... ahora le quedaria estudiarlos y entenderlos para poder hacer sus propios equipos
24/08/2012 #263


Hola fernandoae!! Estoy contigo, creo que hemos comentado tantas posibilidades que ya está todo en el hilo, solo queda unir partes y que cada uno lo adapte a sus necesidades, por que lo que es cierto, no existe un código completo que sirva para todos los controladores.
Cada uno tiene que pensar la configuración de su controlador y luego adaptar el código, que ya está todo aqui explicado.

Un saludo
24/08/2012 #264

Avatar de fernandoae

Este controlador me gustó, es basico pero tiene las funciones necesarias
Imágenes Adjuntas
Tipo de Archivo: jpg Snap_2012.08.24 12.59.05_009.jpg (42,9 KB (Kilobytes), 58 visitas)
25/08/2012 #265


jejeje, curioso. ¿Donde lo has visto?
25/08/2012 #266

Avatar de fernandoae

buscando info en internet... me gustó porque es simple y con los mismos botones se manejan los efectos, los loops y los samples
26/08/2012 #267

Avatar de zeta_bola_1

fernandoae dijo: Ver Mensaje
buscando info en internet... me gustó porque es simple y con los mismos botones se manejan los efectos, los loops y los samples
vos viste lo que salen los que vende musimundo??
26/08/2012 #268

Avatar de fernandoae

No no cuanto?
27/08/2012 #270

Avatar de fernandoae

Al mio me queda mejorarle lo estetico y soy capaz de hacerlo mucho mejor que esos juguetitos plasticos para nenes jaja
27/08/2012 #271

Avatar de zeta_bola_1

fernandoae dijo: Ver Mensaje
Al mio me queda mejorarle lo estetico y soy capaz de hacerlo mucho mejor que esos juguetitos plasticos para nenes jaja
por eso te habia preguntado si habias visto los precios jaja
27/08/2012 #272


Saludos a todos, quiero contarles que solucione el problema de la inestabilidad del Pic colocando un condensador de 100nf en la alimentación. Por otro lado haciendo pruebas descubrí algo que me tiene pensando, tengo un potenciómetro y tres botones cuando oprimo un botón no puedo usar otra función por decir el potenciómetro u otro botón solo hace una tarea a la vez me pregunto si me pueden colaborar con el asunto ustedes me dirán si posteo mi código a ver que puede estar ocurriendo.
Gracias.
27/08/2012 #273

Avatar de capitanp


jajajjaaaj que garompa, ahora se juega el dj?
27/08/2012 #274

Avatar de fernandoae

Niht
antes de que subas el codigo te voy a decir que pasa jaja, seguramente esta mal diseñado el programa y se queda en un bucle leyendo el boton, pero subilo y lo vemos compañero!
27/08/2012 #275

Avatar de zeta_bola_1

capitanp dijo: Ver Mensaje
jajajjaaaj que garompa, ahora se juega el dj?

bueno, hay algo peor, asi como hay un guitar hero o rockband donde se usan instrumentos, hay un dj no secuanto, que usan una mesa para hacer scrach y un par de potes delizables, alto curro!!!
27/08/2012 #276

Avatar de fernandoae

Si, el DJ HERO ni con el nombre se gastaron..
http://www.geek.com.mx/2009/07/grand...sh-en-dj-hero/
27/08/2012 #277

Avatar de zeta_bola_1

fernandoae dijo: Ver Mensaje
Si, el DJ HERO ni con el nombre se gastaron..
http://www.geek.com.mx/2009/07/grand...sh-en-dj-hero/
ese!! jaja, viste la "turntable"? jaja. ojo, a mi me encanta el rock band, mi ahijado tiene los instrumentos en casa y nunca los uso, sabes la paliza que le doy a la bateria y un amigo a la viola. esos si estan buenos, pero el del dj? mmmmmmm
28/08/2012 #278


fernandoae gracias por la ayuda, al igual que muchos aquí emprendimos este proyecto sin conocer nada del lenguaje pero con paciencia hemos ido aprendiendo un poco, como voz dices seguramente está mal diseñado “no sería nada raro ”.
Este es el codigo que tengo "tengan compasión de mi"

Código:
#include <18F4550.h>
#device ADC=8
#fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CPUDIV1,VREGEN      //~~~ 20MHZ OSCILLATOR CONFIGS ~~~//
#use delay(clock=48000000)


#DEFINE USB_HID_DEVICE     FALSE
#define USB_EP1_TX_ENABLE  USB_ENABLE_BULK  //turn on EP1 for IN bulk/interrupt transfers
#define USB_EP2_RX_ENABLE  USB_ENABLE_BULK  //turn on EP1 for OUT bulk/interrupt transfers
#define USB_EP1_TX_SIZE    64  //size to allocate for the tx endpoint 1 buffer
#define USB_EP2_RX_SIZE    64   //size to allocate for the rx endpoint 1 buffer

#include <pic18_usb.h>
#include <descriptors.h>   //USB Configuration and Device descriptors 
#include <usb.c>           //handles usb setup tokens and get descriptor reports

#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)

#use fast_io(A)
#use fast_io(B)


#byte PORTB=0xF82


int tempoA1,tempoA2,tempoA11;
int envia[4];  
unsigned char tempA[4];

void envia_nota()
{   usb_put_packet(1,envia,4,USB_DTS_TOGGLE);
}

void main(void) {
   
   tempoA11=tempoA2=0;
   envia[1]=0x90;
   envia[0]=envia[1]>>4;
   setup_adc_ports(AN0_TO_AN1);  
   setup_adc(ADC_CLOCK_INTERNAL);
   usb_init_cs();

   while (TRUE) {
      usb_task();

      if(usb_enumerated()) 
    {

      {   set_adc_channel(0);
         delay_us(30);
         tempoA1=read_adc();
         tempoA11=tempoA1/2;      
                       
        
         if(tempoA11!=tempoA2)   
            {   tempA[1]=0xB0;
               tempA[0]=tempA[1]>>4;
               tempA[2]=0x00;
               tempA[3]=tempoA11;
               usb_put_packet(1,tempA,4,USB_DTS_TOGGLE);
               tempoA2=tempoA11;
            }
               
          { If (input (PIN_B0))          
      {  delay_ms (10);             
         If (input (PIN_B0));       
            envia[1] = 0x90; //Note on
            envia[0] = envia[1]>>4;
            envia[2] = 0x00; // Nota 0
            envia[3] = 0x7F; // Volumen 127
            envia_nota();
            
         {  do { } while (input (PIN_B0));  
            bit_set(PORTB,0);
            delay_ms(60);
            bit_clear(PORTB,0);
            envia[1] = 0x90; //Note off
            envia[0] = envia[1]>>4;
            envia[2] = 0x00; //Nota 0
            envia[3] = 0x00; // Volumen 0
            envia_nota();
                }
      }
                
                { If (input (PIN_B1))          
      {  delay_ms (10);             
         If (input (PIN_B1));     
            envia[1] = 0x90; //Note on
            envia[0] = envia[1]>>4;
            envia[2] = 0x01; // Nota 0
            envia[3] = 0x7F; // Volumen 127
            envia_nota();
            
         {  do { } while (input (PIN_B1));  
            bit_set(PORTB,1);
            delay_ms(60);
            bit_clear(PORTB,1);
            envia[1] = 0x90; //Note off
            envia[0] = envia[1]>>4;
            envia[2] = 0x01; //Nota 0
            envia[3] = 0x00; // Volumen 0
            envia_nota();
             }
      }
                
                { If (input (PIN_B2))          
      {  delay_ms (10);             
         If (input (PIN_B2));      
            envia[1] = 0x90; //Note on
            envia[0] = envia[1]>>4;
            envia[2] = 0x02; // Nota 0
            envia[3] = 0x7F; // Volumen 127
            envia_nota();
            
         {  do { } while (input (PIN_B2));  
            bit_set(PORTB,2);
            delay_ms(60);
            bit_clear(PORTB,2);
            envia[1] = 0x90; //Note off
            envia[0] = envia[1]>>4;
            envia[2] = 0x02; //Nota 0
            envia[3] = 0x00; // Volumen 0
            envia_nota();
                }
              }
            }
          }
        }
      }
     }
   }
}
28/08/2012 #279


Hola Niht. Veo que has utilizado los comentarios y la forma de mi código, jejejje. Me alegro, así me resulta más fácil de leer. La forma de gestionar los botones no es la más correcta. Te explico:

-Detectas si el botón ha sido pulsado con "If (input (PIN_Bx)" y luego envias el note_on. Ok, está bien, pero luego dejas parado el programa con el "do{} while (input (PIN_Bx)", y hasta que no lo sueltas y envía el note_off, el programa está esperando en ese "do{}..." y no puede hacer nada más.

Yo lo he hecho de otra forma. Cuando presiono un botón, entro en una interrupción, detecto que botón se ha pulsado, y calculo si lo que tengo que enviar es un note_on o un note_off, salgo de la interrupción y sigo con otras cosas, incluso puedo pulsar otro botón mientras tengo ese pulsado, y luego, cuando suelto, entro de nuevo en la interrupción y vuelvo a hacer lo mismo.
Claro, esto puedes hacerlo con botones conectados en el puerto B, pines 4,5,6 y 7.

Y no te preocupes, haciendo una matriz puedes conectar un montón de botones, no solo 4, jejejej.

venga, mira a ver si puedes solucionar algo y nos comentas. Un saludo
28/08/2012 #280

Avatar de fernandoae

Yo sabia jeje!!! se queda en un bucle esperando a que sueltes el boton
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.