Citazione:
Originalmente inviato da MSchiepp ...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?

)