frm Posted December 5, 2006 at 02:42 PM Report #68891 Posted December 5, 2006 at 02:42 PM 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...
deathseeker25 Posted December 5, 2006 at 09:46 PM Report #69032 Posted December 5, 2006 at 09:46 PM 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 ! 😉
JavaLL Posted December 6, 2006 at 02:14 AM Report #69116 Posted December 6, 2006 at 02:14 AM Nao parece ser nada facil... mas boa sorte!!
TheDark Posted December 7, 2006 at 01:25 AM Report #69287 Posted December 7, 2006 at 01:25 AM 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.
Saco Posted December 7, 2006 at 01:37 PM Report #69338 Posted December 7, 2006 at 01:37 PM 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...)
TheDark Posted December 7, 2006 at 04:24 PM Report #69359 Posted December 7, 2006 at 04:24 PM Só não percebi porque é que tendo desenvolvido as funções da 1ª parte, na 2ª mandam usar outra biblioteca... 😄 Desaparecido.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now