ciao
sulla frequenza hai perfettamente ragione, almeno il doppio , quindi nel
tuo caso almeno 1,2kHz, ma per freq così bassa penso puoi osare almeno
4kHz di campionamento senza avere troppi dati
beh in passato usai la scheda audio del pc, anzi di un mac a quel tempo,
con un comune registratore di suoni, anche quello negli accessori di
windows al limite ! setta solo la frequenza di campionamento a quanto
desiderato in qualche proprietà da andare a cercare...
poi salvi il file come wav e lo apri con un qualunque editor esadecimale
puo darsi che tu debba saltare l'header del file (solitamente circa 1Kb)
poi dovresti cominciare a vedere
i dati campionati
in passato con una eprom e un DAC0800 ci costruii un piccolo
riproduttore di suonini da usare quando suonavo in un gruppo (facevamo
piu che altro gli stupidi...)
piu che altro sarà al limite un po difficile tagliare il punto giusto
per avere un loop corretto senza 'salti' se il suono deve durare parecchio
in teoria basterebbe prelevare pochi dati... FreqCampionamento *
(1/MinimoComuneMultiplo della Freq delle due note) ....
quanto deve durare il suono in uscita dal micro ?
magari hai abbastanza spazio in rom per tenere tutto il campione !
dopotutto a 4Khz 1 secondo sono 'solo' 4k !
se riesci a calare a 2 Khz ci stai di sicuro .....
ciao e buona pasqua a tutti
Bruno Benente wrote:
> ciao Massimo,
>
> a ricordo, mi pare che per avere una certa fedeltà si debba campionare
> almeno
> al doppio della frequenza d'uso
>
> dove o come si può trovare un programmino che converte le forme d'onta
> in codici binari
> a 8 bit ?....io devo riprodurre un gong a due note con le frequenze di
> 660 e 550Hz
>
> Bruno
>
> massimo ha scritto:
> >
> > si ho lavorato anche io su un modem 1200 AFSK per trasmissioni APRS per
> > radioamatori
> > fondamentalmente usi un interrupt per prelevare dati da una tabella di
> > lookup e inviarli a un DAC
> > in pratica rigeneri un segnale audio a partire da una tabella
> > segue frammento di codice che usai (non l'ho fatto io !!! :)
> >
> > interrupt void modem_isr(void)
> > {
> > TMR0 = modem_dly;
> > modem_cnt++;
> > modem_wave++;
> > modem_wave &= 0x1f;
> > #asm
> > movlw HIGH get_wave
> > movwf _PCLATH, f
> > movf _modem_wave, w
> > movwf _modem_wave
> > call get_wave
> > movwf _PORTB
> > #endasm
> > T0IF = 0;
> > return;
> > #asm
> > get_wave:
> > addwf _PCL, f
> > retlw 8
> > retlw 9
> > retlw 10
> > retlw 12
> > retlw 13
> > retlw 14
> > retlw 14
> > retlw 15
> >
> > retlw 15
> > retlw 15
> > retlw 14
> > retlw 14
> > retlw 13
> > retlw 12
> > retlw 10
> > retlw 9
> >
> > retlw 8
> > retlw 6
> > retlw 5
> > retlw 3
> > retlw 2
> > retlw 1
> > retlw 1
> > retlw 0
> >
> > retlw 0
> > retlw 0
> > retlw 1
> > retlw 1
> > retlw 2
> > retlw 3
> > retlw 5
> > retlw 6
> > #endasm
> > }
> >
> > la tabella è costruita con una banale funzione geometrica di seno
> > dato che in questo caso occorreva una forma d'onda sinusoidale
> >
> > ho visto qualcosa in internet per generare dei DTMF ad esempio
> > piu che altro è importante avere la tabellina già fatta...
> > era una AN ma non ricordo dove :(
> > un idea: campiona il segnale che ti serve con una scheda audio e poi
> > analizza il file...
> > campiona a bassa frequenza però altrimenti non ti passa + !!! :)
> >
> > ciao
> >
> > Bruno Benente wrote:
> >
> > > Ciao a tutti
> > >
> > > devo generare due note , ma purtroppo non posso utilizzare il
> sae800 in
> > > quanto,
> > > con la sua resistenza di carico, assorbe molto per cui pensavo di
> > > adottare un metodo
> > > visto in una applicazione con micro picxxx.
> > > In pratica , per quello che ho visto, riempiono la memoria con una
> > > sfilza di codici binari
> > > e successivamente li sparano a raffica in uscita su un
> > > partitore/integratore.
> > >
> > > qualcuno sa darmi qualche info in più su questo metodo
> > >
> > > grazie
> > > Bruno
> > >
> > > [Non-text portions of this message have been removed]
> > >
> > >
> >
> > --
> >
> > OS problems ?
> > Linux is your solution !!!
> >
> > IZ4GHA
> > web: www.fuso-luci.it
> > email: fuso@... <mailto:fuso%402ainfo.it>
> <mailto:fuso%402ainfo.it>
> > registered Linux user n.91585
> >
> > Unix... since 1969 on your computer !
> >
> >
>
> [Non-text portions of this message have been removed]
>
>
--
OS problems ?
Linux is your solution !!!
IZ4GHA
web: www.fuso-luci.it
email: fuso@...
registered Linux user n.91585
Unix... since 1969 on your computer !