Moderadores: 51, guest2003, Renie, gpenga
xultz escreveu:Cara, você precisa escolher um valor, não tem como fazer um código que gera uma frequência mais ou menos alta. Você precisa decidir o que quer, senão não tem com ajudar.
ze escreveu:como ajudar até que tem sim. pelo que entendi o amigo quer fazer algo como:
P00=8192Hz
P01=4096Hz
P02=2048
P03=1024
...
P07=64Hz
e usar o P1 como controle de endereços de um multiplex analógico 4051 e ouvir os 8 tons um a cada segundo num buzzer
Isso é relativamente fácil. Didaticamente até que seria bacana. Mas a maneira mais minimalista (e recomendada por mim) seria usar o pwm mesmo com zero de hw externo.
Me lembrei que certa feita fiz um mc tocar alguns tons proporcionais aos bytes de um checksum e era por sw num mc sem pwm. Outra fiz o mc tocar o hino de um time. A qualquer momento procuro os fontes e lhe passo. De novo, mostre o que já fez e o que já sabe e cogite usar o simulador e procure não economizar palavras mágicas.
#define bz0 Pxx
#define bz1 Pxy
void beep(unsigned char d, unsigned char f) //duração, frequência
{
bz0=0;bz1=1;//buzzer piezo - sinal alternado entre pinos
while(d--)
{
while(f--);
bz0^=1;
bz1^=1;
}
}
ze escreveu:
- Código: Selecionar todos
#define bz0 Pxx
#define bz1 Pxy
void beep(unsigned char d, unsigned char f) //duração, frequência
{
bz0=0;bz1=1;//buzzer piezo - sinal alternado entre pinos
while(d--)
{
while(f--);
bz0^=1;
bz1^=1;
}
}
o cod é tão idiota que qualquer comentário adicional seria tão idiota quanto este.
Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante