Página 1 de 1

funçaõ

MensagemEnviado: 10 Jan 2007 19:57
por antonio
Pessoal tudo Bem!!

Fiz tudo para nao estar este tipo de pergunta ,mas è seguinte nao estou compreendendo esta funçao abaixo
mais pricipalmente na linha do switch ?!

Algem me pode dar uma ajuda a comprender esta função??
Desde ja agradeço
até

void carga_chave(void)
{
for(i=0;i<4;i++)
{
chave[i]=read_eeprom(i);
}

switch(read_eeprom(4)) // como posso ler esta linha aqui :oops:
{
case '1': tempo=229; break; // 15 segundos
case '2': tempo=458; break; // 30 segundos
case '3': tempo=687; break; // 45 segundos
case '4': tempo=916; break; // 60 segundos
}
}

MensagemEnviado: 10 Jan 2007 20:25
por Maurício
Olá, antonio.

Verifique o protótipo da função READ_EEPROM, no arquivo-cabeçalho que inclue esta função no seu programa (arquivo .H).

Me parece que esse switch faz a seleção com um dado armazenado no endereço 4 (???) da E2PROM.

Pode ser isso.

[]'s

RETI.

MensagemEnviado: 10 Jan 2007 21:31
por Orcino
Mauricio, é o seguinte o SWITCH pega o dado armazenado na eeprom no endereço 4 e testa, CASE 1 faz isso, CASE 2 faz aquilo e assim por diante, é o mesmo que

dado=read_eeprom(4); \\ lê o que tá no end. 4 e guarda em dado

switch(dado)
{
case '1' : tempo=229; break;
:
:
:
:
}


Orcino

MensagemEnviado: 11 Jan 2007 00:34
por Renie
Olá pessoALL!

EU não uso C!!!! (eu odeio C! :shock: )

Mas, tanto o Maurício quanto o Orcino estão corretos! Mas, acho que não responderam a dúvida do colega!

Este trecho transfere um dado da EEPROM para uma área de RAM ( Acesso direto)! É trazer um dado guardado que não se perde para a
área de trabalho!( pode até ser sobreposto no final!Não sei!)

PS: Ops, um não, todos os 4 bytes guardados na EEPROM!

MensagemEnviado: 11 Jan 2007 17:11
por antonio
Pessoal Tudo bem !!

ficou mais esclarecida a duvida que tinha ,mais uma vez o meu abraço :D

Agora tenho uma outra duvida que o colega RENIE me deixou a pensar :?:

que è o seginte;

""PS: Ops, um não, todos os 4 bytes guardados na EEPROM!""

RENIE: então o numero (4) em READ_EEPROM(4) quer dizer BYTES ?

Desculpe a ignorancia, mas eu pensava pelo que esteve a ler em cima que o numero (4) se referia ao endereço da eeprom ??

Entao um BYTE è igual 0....255 ??, Como devo entender isto?

Espero no encontro e soluç :shock: oes

MensagemEnviado: 11 Jan 2007 17:36
por ric_vas
Vc está certo. O (4) é o endereço.

Ric

MensagemEnviado: 11 Jan 2007 17:39
por Renie
Olá Antonio,

Não, o read_eeprom(4) creio que seja a leitura do endereço 4 mesmo,
o trecho abaixo é que transfere 4 bytes da eeprom para a RAM.


void carga_chave(void)
{
for(i=0;i<4;i++)
{
chave[i]=read_eeprom(i);
}

MensagemEnviado: 11 Jan 2007 19:03
por antonio
Pessoal muinto obrigado :)

MensagemEnviado: 11 Jan 2007 19:54
por ivan
Do endereço 0(zero) ao endereço 4(quatro) são cinco bytes :wink:

MensagemEnviado: 11 Jan 2007 22:45
por Fábio Pereira
Mas o for conta só de 0 a 3 ...

O endereço 4 é utilizado pelo switch ...

Até +

MensagemEnviado: 12 Jan 2007 06:04
por antonio
Ola Fabio!

Vc quer dizer que o primeiro case no switch entao esta mal? deveria começar no ('0') e nao no ('1')?? :?

Atè

MensagemEnviado: 12 Jan 2007 08:20
por ivan
A função trata cinco bytes: quatro no for e um no switch.
No fundo falamos a mesma coisa :wink:

Antonio,

O Switch trata o valor armazenado no endereço 4(quatro) da memoria e a avaliação do switch será sobre o range de valores desta posição de memória.