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@...
registered Linux user n.91585
Unix... since 1969 on your computer !