Jump to content

Recommended Posts

Posted

Quase todos os PC's têm um altifalante interno que pode ser controlado atraves dos portos

0x42, 0x43 e 0x61. Quando devidamente controlado, este dispositivo basico permite reproduzir

um som continuo de uma determinada frequencia. Antigamente, quando os computadores ainda

nao tinham placa de som nem altifalantes externos, aquele era o unico meio acustico disponivel

num PC.

E objectivo deste trabalho pratico controlar o altifalante interno de modo a que ele emita notas

musicais. A nota a ser tocada pode ser controlada, quer por uma tecla (versao piano).

Estrategia:

1. Fase 1 - Controlo do Altifalante

Uma nota musical nao e mais do que um som continuo de uma determinada frequencia. O

altifalante pode ser programado para emitir um som de uma determinada frequencia como

esta documentado em:

http://courses.ece.uiuc.edu/ece390/books/labmanual/io-devices-speaker.html

Pretende-se que elabore o seguinte conjunto de funcoes em assembly para controlo do altifalante.

(a) void InitPIT2() - Configura adequadamente o contador 2 escrevendo no porto 0x43

(🙂 void Sound() - Faz o \enable" do altifalante escrevendo no porto 0x61

© void Silence() - Faz o \disable" do altifalante escrevendo no porto 0x61

(d) void SetSound(short count limit) - Programa o limite de contagem de PIT2 usando o

porto 0x42 (o par^ametro count limit depender a da frequencia do som a emitir).

Estas funcoes deverao ficar no ficheiro soundlib.asm de forma a criar uma livraria que sera

utilizada por programas escritos em C. De forma a verificar a correccao do seu codigo sugerese

que elabore um programa em C que solicite ao utilizador a frequencia do som que deseja

ouvir, e que faca o amplificador reproduzir esse som durante 3 segundos.

Fase 2 - Piano digital controlado pelo teclado

Elabore um programa que associa a cada tecla um som de uma determinada frequência

(nota musical). Para isso podera fazer uso das livrarias do DJGPP cuja documentacao se

encontra em

(a) http://www.delorie.com/djgpp/doc/libc/

Tou sem ideias, nem sei por onde comecar e nem como comecar, se alguem me puder ajudar...

Posted

Não venho acrescentar nada de propriamente novo, mas apenas dizer que a ideia é muito boa. É difícil de implementar pelo que vejo, no entanto com alguma pesquisa e algumas ajudas vais conseguir implementar isso.

Depois apresenta nos Projectos Programação. Boa sorte !  😉

Posted

Se isso é um trabalho escolar, é suposto teres dado nas aulas o suficiente para leres a documentação fornecida e fazeres o trabalho. Ou pelo menos começares a escrever a estrutura do programa, e o básico das funções. Se não acertares à primeira no funcionamento das coisas não é preocupante, mas se não sabes por onde começar já se torna um pouco mais grave...

Mas também com professores que escrevem "livraria" em vez de biblioteca já não sei de nada...

Sabes escrever funções em assembly?

PS - Não percebi a estrutura do trabalho... na 1ª parte pedem para escrever funções que emitam som de uma dada frequência, e na 2ª parte dizem para utilizar bibliotecas externas que fazem o mesmo que as funções criadas na 1ª parte?

Desaparecido.

Posted

Já foste ao primeiro link? Está lá explicado tim-tim por tim-tim tudo o que tens de fazer para a primeira parte. Até tem um exemplo...

Quanto à segunda parte não percebi bem a ideia de ter de usar aquela biblioteca (livraria? oh meu deus...)

Posted

Só não percebi porque é que tendo desenvolvido as funções da 1ª parte, na 2ª mandam usar outra biblioteca... 😄

Desaparecido.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.