![]() |
Citazione:
Tornando al problema, avevo preso spunto da un progetto trovato in rete con un codice del genere: void setPWM(unsigned char sample) { CCPR1L = sample >> 2; DC1B1 = (sample&0x02)>>1; DC1B0 = (sample&0x01); } void play(const char *sound, int size) { int i; for(i=0; i<size; i++) { setPWM(sound[i]); wait=1; while(wait); } } Ci sono da fare una serie di considerazioni sulla tempistica (tempi di lettura dalla eeprom, tempi legati alla frequenza di campionamento) che ancora non mi sono chiari. Oltretutto vorrei proseguire con il C, non ho molta simpatia per l'assembler (diciamo che mi fa fatica :rolleyes: non che non abbia mai programmato in assembler). La strada è quella giusta? In uscita nel piedino del PIC avrei una PWM modulata secondo i campioni prelevati dalla eeprom; supponiamo una frequenza di campionamento di 22khz, dovrei avere un filtro passa basso che taglia sopra questa frequenza? (ehm... basta una RC? Come si calcola? :fiu:) |
La frequenza di taglio dei filtri è data da: f= 1/(2*Pgreco*R*C) :wink: |
Citazione:
appena ho un po' di tempo libero faccio qualche prova. PS: se hai qualche link interessante su questi argomenti me lo puoi mandare via PM? |
io vi leggo e aspetto il parto...... io vi potrei suggerire che la nota musicale del LA. corrisponde a 440hz. per fare una tromba bitonale devono essere suonate 2 note. ad esempio un LA + DO ...... oppure DO+SOL. di più non saprei dirvi ..... cmq grazie per lo sforzo! |
nessn aggiornamento? ....... |
bi, io sto preparando la macchina per il suo esordio di domani... pensavo avessi testato il chip citato prima |
| Tutti gli orari sono GMT +2. Adesso sono le 20:17. |
Basato su: vBulletin versione 3.8.11
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
E' vietata la riproduzione, anche solo in parte, di contenuti e grafica. Copyright 1998/2019 - K-Bits P.I. 09395831002