Página 1 de 1

Duvida sobre esta função

MensagemEnviado: 29 Mai 2007 19:31
por jrmanke
Olá pessoal..

Estou começando a montar um teclado matricial com o PIC, peguei o livor do Fabio e nas ultimas paginas tem um exemplo. foi deste exemplo que eu comecei a escrever o software. Seria mais facil copiar o programa do livro, certamente iria funcionar masdesta forma eu não pratico o raciocinio logio..
Enfin, no livro tem uma função muito parecida a diferença esta no tipo da função ( char ) e eu alterie para int.
Segue abaixo um teste que eu fiz, mas quando mando compilar aparece um msgs de erro.

void main (void)
{
configura();
int temp;

while(1)
{

temp = le_teclas(); // apontamento da mensagem de erro

}
}
//******************************************************************
// ROTINA DE LEITURA DAS TECLAS
//******************************************************************

int le_teclas(void)
{

return 10;

}

******************

Se alguem puder me esclarecer onde eu estou errando eu ficaria grato.

Att

Johnny

MensagemEnviado: 29 Mai 2007 20:19
por Red Neck Guy
1º. A função em questão não faz nada... Até aí tudo bem.
2º. Não existe protótipo da função....
Se as tuas funções forem implementadas antes da função main, acho que isso segue a norma ANSI/C, não são necessários os protótipos. Caso contrário eles são obrigatórios...

MensagemEnviado: 29 Mai 2007 21:16
por barboza
void main (void)
{
configura();
int temp;



As variaveis devem ser criadas sempre antes dos codigos ou sempre após a abertura de chaves.


void main (void)
{
int temp;

configura();

MensagemEnviado: 30 Mai 2007 10:12
por jrmanke
olá..

Esta função é apens um teste..
a variavel temp deve assumir o valor que esta na função ( return 10 )
Sim eu nho configurado os prototipos de função no inicio do programa.

eu não entendi o seu comentario barboza..

Att

MensagemEnviado: 30 Mai 2007 10:56
por barboza
Poste a sua função "configura()"!

A declaração de variaveis deve ser antes de chamada a funções ou codigos.

Isso esta errado!

void main (void)
{
configura();
int temp;
.....


Poderia ser!

void main (void)
{
int temp;
configura();
.....

MensagemEnviado: 30 Mai 2007 10:59
por barboza
Poste a sua função "configura()"!

A declaração de variaveis deve ser antes de chamada a funções ou codigos.

Isso esta errado!

void main (void)
{
configura();
int temp;
.....


Poderia ser!

void main (void)
{
int temp;
configura();
.....

MensagemEnviado: 30 Mai 2007 10:59
por andre_luis
Parece ser exatamente o que o barboza falou.
Voce está declarando uma variável depois de executar uma função. A grande maioria dos compiladorea nao aceitam isso. Só consegui fazer isso no C++ builder.

+++

MensagemEnviado: 30 Mai 2007 11:59
por jrmanke
Pessoal..
A minha função configura este fincionando perfeitamente, ela chama a configuração do PIC tris, timers etc...
o problema esta na linha em destaque
void main (void)
{
configura();
int temp;

while(1)
{

temp = le_teclas(); // nesta linha ocorre o problema.....

}
}
//******************************************************************
// ROTINA DE LEITURA DAS TECLAS
//******************************************************************

int le_teclas(void)
{

return 10;

}

******************

eu queria que a variavel temp, recebece o valor de retorno da função le_teclas.

Ja não sei mais o que fazer, no livro tem um porgrama com uma linha de raciocinio parecida..

Obrigado..

MensagemEnviado: 30 Mai 2007 12:11
por Renie
Olá Johny,

Coloque a declaração da função int le_teclas(void) antes da MAIN.

MensagemEnviado: 30 Mai 2007 12:47
por barboza
Ou teste assim!

//******************************************************************
// ROTINA DE LEITURA DAS TECLAS
//******************************************************************

int le_teclas(void)
{

return 10;

}

******************

void main (void)
{
configura();
int temp;

while(1)
{

temp = le_teclas(); // nesta linha ocorre o problema.....

}
}

******************

Apesar que o correto é fazer a declaração dos prototipos.

MensagemEnviado: 01 Jun 2007 16:31
por jrmanke
Valeu pessoal..

eu fiz estas alterações e funcionou..

Obrigado a todos

Att