como fazer duas contagens em velocidades diferentes?

Software e Hardware para linha x51

Moderadores: 51, guest2003, Renie, gpenga

Re: como fazer duas contagens em velocidades diferentes?

Mensagempor renan-papaco » 25 Out 2013 07:49

vocês tem razão... acho q eu tenho ficado muito nervoso com isso...sério msm desculpem ai pessoal...

mas se é pra dar tanta riqueza de detalhes assim...aqui vai: é um projeto experimental... eu preciso q o port P0 conte de 0 a 255 rapidamente com o comando for que ali no código foi colocado...na qual as frequências já dão pro que eu quero. o port P1 seria pra controlar, sequencialmente ao meu gosto um CI 4051 que é um demux analógicoque selecionaria cada pino do P0 e mandar o sinal dele pra saída que vai excitar um alto falante... nada mais que isso...entenderam? por isso que preciso controlar o port P0 de um jeito e o port P1 de outro jeito...
Sabe quem mais programa um 8051 com ROM externa? MINHA MÃE! HOOOOOOOOOOOOOOOOOO
Avatar do usuário
renan-papaco
Byte
 
Mensagens: 292
Registrado em: 17 Jun 2012 15:56

Re: como fazer duas contagens em velocidades diferentes?

Mensagempor xultz » 25 Out 2013 10:20

Que frequência você quer prá uma coisa e outra?
98% das vezes estou certo, e não estou nem aí pros outros 3%.
Avatar do usuário
xultz
Dword
 
Mensagens: 3001
Registrado em: 13 Out 2006 18:41
Localização: Curitiba

Re: como fazer duas contagens em velocidades diferentes?

Mensagempor renan-papaco » 25 Out 2013 12:18

o valor eu nem sei ao certo...essas frequencias altas até tenho... nesse programa o port P0 funciona como um CD4040 cujo a 9º saida vai ao reset, fazendo dele um contador binário de 8 bits.. eu não sei ao certo a frequência... deve ser algo em torno de 3KHz na saída mais rapida...em fim eu não sei explicar com boa riqueza de detalhes. e nem sei as frequencias pq não tenho como medi-las. meu osciloscópio tbm não tá lá essas coisas...

a frequência do P1 pra sequenciar as saídas é bem mais lenta, algo em torno de 0/5 Hz...ou mais q isso.
Sabe quem mais programa um 8051 com ROM externa? MINHA MÃE! HOOOOOOOOOOOOOOOOOO
Avatar do usuário
renan-papaco
Byte
 
Mensagens: 292
Registrado em: 17 Jun 2012 15:56

Re: como fazer duas contagens em velocidades diferentes?

Mensagempor xultz » 25 Out 2013 13:09

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.
98% das vezes estou certo, e não estou nem aí pros outros 3%.
Avatar do usuário
xultz
Dword
 
Mensagens: 3001
Registrado em: 13 Out 2006 18:41
Localização: Curitiba

Re: como fazer duas contagens em velocidades diferentes?

Mensagempor ze2 » 25 Out 2013 13:32

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.
ze2
Byte
 
Mensagens: 193
Registrado em: 09 Fev 2009 13:37

Re: como fazer duas contagens em velocidades diferentes?

Mensagempor renan-papaco » 25 Out 2013 18:36

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.

a frequência máxima nem é o tão importante da história... só preciso mesmo é como o zé disse acima: fazer um endereçamento externo pra controlar um 4051...só isso...

ah e esse endereçamento seria cogitado da seguinte forma...sequenciar pra formar sequencias musicais, colocando um dip SW no port P2... ,mas isso aí é mais tranquilo de fazer pois eu sei lidar com o comando switch case.
Sabe quem mais programa um 8051 com ROM externa? MINHA MÃE! HOOOOOOOOOOOOOOOOOO
Avatar do usuário
renan-papaco
Byte
 
Mensagens: 292
Registrado em: 17 Jun 2012 15:56

Re: como fazer duas contagens em velocidades diferentes?

Mensagempor renan-papaco » 25 Out 2013 18:48

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.


ok...procure aí e obrigado viu?
Sabe quem mais programa um 8051 com ROM externa? MINHA MÃE! HOOOOOOOOOOOOOOOOOO
Avatar do usuário
renan-papaco
Byte
 
Mensagens: 292
Registrado em: 17 Jun 2012 15:56

Re: como fazer duas contagens em velocidades diferentes?

Mensagempor ze2 » 28 Out 2013 07:37

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.
ze2
Byte
 
Mensagens: 193
Registrado em: 09 Fev 2009 13:37

Re: como fazer duas contagens em velocidades diferentes?

Mensagempor renan-papaco » 28 Out 2013 22:16

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.


não entendi bem... com esse código ai daria pra controlar dois ports do MC em modos e velocidades diferentes?
Sabe quem mais programa um 8051 com ROM externa? MINHA MÃE! HOOOOOOOOOOOOOOOOOO
Avatar do usuário
renan-papaco
Byte
 
Mensagens: 292
Registrado em: 17 Jun 2012 15:56

Re: como fazer duas contagens em velocidades diferentes?

Mensagempor ze2 » 30 Out 2013 06:55

em outro post seu me pareceu que voce quer fazer programas maiores que 8k. isso pode demorar um pouco mais do que pensamos. e talvez eu não esteja mais aqui. não se preocupe. posso deixar uma mensagem gravada pro meu neto te ajudar. (sorry. é mais forte que eu). amigo, aquela rotininha é pra gerar tons de frequencia e duração diferentes nos pinos do mc. nada mais é do que um beep (bip) multitonal idiota o qual mencionei no post anterior. fi-lo no inicio de carreira no século passado quando não havia internet (sim esta época existiu). Como disse, é simples d+ pra acrescentar comentários, mas se precisar...
Ah sim... óbvio ululante ... o buzzer ficava entre dois pinos e não entre pino e gnd.
abç
ze2
Byte
 
Mensagens: 193
Registrado em: 09 Fev 2009 13:37

Re: como fazer duas contagens em velocidades diferentes?

Mensagempor renan-papaco » 30 Out 2013 21:50

beleza... eu vou ver se consigo tirar algum proveito implementando seu código aqui... qualquer coisa já vejo noq deu. obrigado aí viu?
Sabe quem mais programa um 8051 com ROM externa? MINHA MÃE! HOOOOOOOOOOOOOOOOOO
Avatar do usuário
renan-papaco
Byte
 
Mensagens: 292
Registrado em: 17 Jun 2012 15:56

Anterior

Voltar para 8051

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x