Xilofono Digital

segun como te entiendo solamente basta con hacer: char DO[150]; no es necesario de poner cada elemento de ese largo de 150?, es decir no es necesario poner char DO[150]={12,124,...}?
 
hijoles :eek:
tu micro no es muy grande 128k de FLASH y 16,384 bytes en RAM
28 pines no es muy grande

esos desafios son los buenos , yo optaria por hacer todo SPI :LOL: con un 74HC595 sacaria mis datos para hacer el DAC ;)

asi ahorro 8 pines y solo gasto 3

con otro SPI me comunicaria con las eeprom, con el CD4021 hago el teclado asi sobran pines bueno es una sugerencia.



respecto a tu pregunta

segun como te entiendo solamente basta con hacer: char DO[150]; no es necesario de poner cada elemento de ese largo de 150?, es decir no es necesario poner char DO[150]={12,124,...}?

ya no lo veo necesario pues si uno va a leer directamente de la EEPROM no es necesario reservar tanta memoria.

lo que haria seria guardar todos los datos en la eeprom digamos las notas que quepan de DO hasta la que quepa pero si conocemos el tamaño de cada nota podriamos leer solo la longitud que mide

no recuerdo como es leer una memoria externa pero el algoritmo es asi o mas o menos asi debes indagar

char valor; //un char es solo 1 byte
int16 direccion; //int16 son 2 bytes ya que la eeprom mide mas aya de los 255 bloques usar 2 bytes

valor = leer_memoria(direccion);

la variable valor es la que se enviara directamente al DAC
la funcion de leer memoria la invente puede tener otro nombre busca en internet una libreria que te permita leer memorias eeprom externas ya sea i2c o SPI.

la direccion leera los datos que estan en tu eeprom
 
Última edición:
muy bacano sus aportes la verdad esta es una comunidad buenisima, en la U me comentaron lo siguiente:
basicamente lo que deseo hacer con mi xilofono es que cada vez de que yo interrumpa el haz de luz entre (receptor y emisor), se genere el sonido de una nota (do, re, mi..) como si estuviese tocando las teclas de un xilofono. tendrias un codigo en C que me permitiese eso? yo tengo las notas discretizadas es decir, en .txt, por ejemplo:char DO[1270]={23,243,...}, asi sucecivamente para cada nota.

me estaban sugeriendo aparte del foro de que hiciera lo siguiente, primero que evaluara el estado de cada sensor es decir en que nivel alto o bajo se encontraban, mediante lo siguiente:

if(present_state_DO==0 && last_state:DO==1){
salida_DO=150
}

y que luego con esa salida_DO realizara una tarea esta tarea es para usarla con un contador para cada nota que permita evaluar la posicion de cada elemento del vector.

No se que tan acuerdo esten o hay otra manera de realizarlo, estoy usando un dspic33fj128mc802
 
mira no es mal consejo pero eso de los adornos con luces y esas cosas no te enfoques
enfocate en generar los tonos una vez que puedas generar tonos

una vez que puedas hacer eso trata de leer uno o 2 botones eso es lo de menos

ya que puedas generar tonos con 2 3 botones ahora si biene meter mas botones

una vez un gran programador me dijo un software muy firme no debe por que caerse si el hardware esta para el perro
 
entiendo lo del teclado pero como escribi hace un dia, que mi `proyecto consta de sensores receptor y emisor que hacen el papel de teclado, es decir que cada vez que se realice una interrupcion suene una nota determinada.
 
Entiendo lo del teclado, pero como escribí hace un día, que mi proyecto consta de sensores receptor y emisor que hacen el papel de teclado, es decir, que cada vez que se realice una interrupción, suene una nota determinada.
Ya se te dieron las opciones de cómo podrías generar la notas musicales.
Ahora te corresponde a ti, hacerlo con interrupciones, sensores y lo que más quieras ponerle a tu proyecto.
 
Última edición:
Atrás
Arriba