Duvida sobre esta função

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

Duvida sobre esta função

Mensagempor jrmanke » 29 Mai 2007 19:31

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
Johnny Ricardo Manke

Blumenau - Santa Catarina
jrmanke
Byte
 
Mensagens: 114
Registrado em: 19 Out 2006 19:01
Localização: Blumenau - SC

Mensagempor Red Neck Guy » 29 Mai 2007 20:19

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...
ASM51 descanse em paz!
Avatar do usuário
Red Neck Guy
Dword
 
Mensagens: 1968
Registrado em: 12 Out 2006 22:24

Mensagempor barboza » 29 Mai 2007 21:16

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();
Os homens mentiriam muito menos se as mulheres fizessem menos perguntas.
Avatar do usuário
barboza
Word
 
Mensagens: 948
Registrado em: 17 Out 2006 13:42
Localização: Longe de onde gostaria de estar

Mensagempor jrmanke » 30 Mai 2007 10:12

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
Johnny Ricardo Manke

Blumenau - Santa Catarina
jrmanke
Byte
 
Mensagens: 114
Registrado em: 19 Out 2006 19:01
Localização: Blumenau - SC

Mensagempor barboza » 30 Mai 2007 10:56

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();
.....
Os homens mentiriam muito menos se as mulheres fizessem menos perguntas.
Avatar do usuário
barboza
Word
 
Mensagens: 948
Registrado em: 17 Out 2006 13:42
Localização: Longe de onde gostaria de estar

Mensagempor barboza » 30 Mai 2007 10:59

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();
.....
Os homens mentiriam muito menos se as mulheres fizessem menos perguntas.
Avatar do usuário
barboza
Word
 
Mensagens: 948
Registrado em: 17 Out 2006 13:42
Localização: Longe de onde gostaria de estar

Mensagempor andre_luis » 30 Mai 2007 10:59

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.

+++
Avatar do usuário
andre_luis
Dword
 
Mensagens: 5447
Registrado em: 11 Out 2006 18:27
Localização: Brasil - RJ

Mensagempor jrmanke » 30 Mai 2007 11:59

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..
Johnny Ricardo Manke

Blumenau - Santa Catarina
jrmanke
Byte
 
Mensagens: 114
Registrado em: 19 Out 2006 19:01
Localização: Blumenau - SC

Mensagempor Renie » 30 Mai 2007 12:11

Olá Johny,

Coloque a declaração da função int le_teclas(void) antes da MAIN.
[]'s
Renie
-------------------------------------------------------------------------------------------------------------
Meu velho site com eletrônica praticamente parado http://www.reniemarquet.com
Nosso Blog http://artemadeiraevida.blogspot.com.br
Renie
Word
 
Mensagens: 732
Registrado em: 11 Out 2006 22:35
Localização: RJ - Niterói - Brasil

Mensagempor barboza » 30 Mai 2007 12:47

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.
Os homens mentiriam muito menos se as mulheres fizessem menos perguntas.
Avatar do usuário
barboza
Word
 
Mensagens: 948
Registrado em: 17 Out 2006 13:42
Localização: Longe de onde gostaria de estar

Mensagempor jrmanke » 01 Jun 2007 16:31

Valeu pessoal..

eu fiz estas alterações e funcionou..

Obrigado a todos

Att
Johnny Ricardo Manke

Blumenau - Santa Catarina
jrmanke
Byte
 
Mensagens: 114
Registrado em: 19 Out 2006 19:01
Localização: Blumenau - SC


Voltar para PIC

Quem está online

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

cron

x