por Vonnilmam » 16 Fev 2010 22:52
vou me intrometer, intrometendo! há
olha só a dica do barbosa é corretissima, como vc cristian deseja aprender ou melhor esta querendo reproduzir uma wav, o melhor caminho é fazer o basição que foi o que o barbosa indicou, vou até um pouco além:
ao invé se utilizar dacs dedicados, vc pode montar uma rede r2r de 8 bits na saida do pic (o diagrama desta rede é super comum, procura no google por r2r 8bits), coloca no porte b do pic por exemplo, faça uma rotina onde o timer 1 estoure na frequencia que vc fizer a amostra ou sample, então toda a vez que a int do timer 1 estourar vc envia um byte da memória para o seu port b, simples assim...
eu já fiz um treco destes, como eu só tava brincando eu fiz uma amostra (ex. peguei uma amostra da filha falando "papai") gravei essa amostra numa eeprom 24lc256, fiz uma rotina para pegar essas informações e transporta-las para uma memória 62256 ram...e depois uma outra rotina para a reprodução...
Porque eu fiz essa treta de gravar numa flesh 24lc256 e depois importar os dados para um ram, é simples: primeiro porque eu queria ter um resultado rápido do meu circuito, podendo assim gravar inumeras vezes a flesh com varias amostras diferentes, o detalhe da ram é porque para se reproduzir sons vc tem que ter velocidade de leitura como no caso citado, então deverá utilizar rans ou rons...
todavia vc poderá utilizar um eprom do tipo 27c256 ou 512 gravando diretamente a wav nessa memória...tudo isso é só para efeito de teste, depois que vc aprender e entender como funciona a coisa vc começa a pensar em Sdcard, USB e PWM...
Esse último recurso PWM, é interessantíssimo e se vc for prosseguir na sua empreitada sonora, vá estudando as técnicas de PWM..
Outro detalhe, o melhor formato para vc montar numa memória as waves é vc converte-las para o formato PCM, além de consumir menos memória o mesmo wave (porque vc retira o protocolo wav do pacote de amostras e só fica o PCM puro)...eu utilizo o soundforge, para fazer essas trapalhadas de audio....
Outra coisa, no meu circuito eu coloquei no hardware um contador binario 4040 ligado ao pic, assim o pic em seu programa envia os sinais de clock e reset para esse contador que controla os pinos de endereçamento da ram (no caso)...,
Antigamente esse era o método mais utilizado para gerar sons baseados em tabelas de wave, hoje em dia com o mcus e afins, as coisas ficaram mais globalizadas no audio e diversas técnicas podem ser utilizadas para gerar sons, uma delas é a interpolação de dados de audio que permite fazer muita coisa com pouco wave...e por aí vai...
espero ter ajudado,
VonNilmam "Assembler" e agora "C"