Discussione: clackson
Visualizza messaggio singolo
Vecchio 18 gennaio 10, 13:32   #21 (permalink)  Top
illez
User
 
L'avatar di illez
 
Data registr.: 06-08-2007
Residenza: Empoli
Messaggi: 1.813
Citazione:
Originalmente inviato da MSchiepp Visualizza messaggio
...e pensare che un PIC12F629 e un transistor non mi sembrava una soluzione così complessa...

Michele
Intanto grazie a tutti per i suggerimenti che mi fanno capire ancora una volta quanto sia ignorante in elettronica (ahimè, voi siete elettronici, io informatico).

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 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? )
__________________
.......
illez non è collegato   Rispondi citando