- Messaggi: 137
- Ringraziamenti ricevuti 3
Aiuto calcolo delay
Moderatori: Mauro Laurenti, Pinna, StefA, Matteo Garia
Registrati al sito
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.
Mauro Laurenti ha scritto: Ciao,
Akuryu non ha mantenuto la promessa di rispondere in caso il topic fosse stato nella sezione giusta...!
Allora cominciamo col dire che due note assieme semplicemente on-off non le puoi ottenere.
L' altoparlante o e' acceso o e' spento, per cui puoi generare solo una nota alla volta (questo non e' proprio verissimo). Facendo uso del PWM e usandolo in veste di DAC puoi miscelare piu' note assieme ma non e' banale. Inizierei con il continuare il programma di esempio che hai in mano e che ti permette di generare gia' delle note associate una per tasto.
Per mezzo del programma PIC Timer puoi impostare il delay che ottieni per mezzo del timer ma devi fare attenzione a questo fatto:
Supponiamo di voler generare una frequenza da 1KHz ovvero il cui periodo e' 1 ms. Questo non significa che il timer deve creare un ritardo di 1ms. Supponendo di avere una nota con duty cycle del 50% ovvero mezzo periodo acceso e mezzo spento, devi avere che per 500us l'altoparlante e' acceso e per 500us i l'altoparlante e' spento. La somma dei due tempi e' proprio il periodo di 1ms. Quindi con il timer devi avere una base tempi di 500us e ad ogni interrupt devi invertire il bit associato all'altoparlante.
Con frequenze diverse calcola il periodo T (T = 1/ f) ovvero l' inverso della frequenza e imposta il timer a meta' del tempo.
Quindi alla pressione di ogni tasto associ un valore del timer diverso.
Saluti,
Mauro
Si prega Accedi o Crea un account a partecipare alla conversazione.
Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.