Pages: [1]   Go Down
Author Topic: Dúvida:Código EEPROM  (Read 406 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 0
Posts: 183
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Tenho dúvidas em perceber o seguinte código.Este código referece a leitura e escrita de dados numa EEPROM.
Code:
#define WR_PNT_ADD 0x000
unsigned int Rd1(){
byte low=Read(RD_PNT_ADD);//Função que lé dados da EEPROM
byte hi=Read(RD_PNT_ADD+1);
return((hi<<8)+low);//Nao sei que isto faz, 1º dúvida
}

void Rd2(){
Write(RD_PNT_ADD,(byte) (pnt & 0x00FF));//Função escreve dados,2º dúvida
Write(RD_PNT_ADD+1,(byte (pnt>>8));//3ºdúvida
}

Desde já obrigado pela ajuda.
Logged

Portugal
Offline Offline
Edison Member
*
Karma: 28
Posts: 1436
Tomorrow I will know a BIT more than yesterday
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
byte low=Read(RD_PNT_ADD);//Função que lé dados da EEPROM
Nao conheco a funçao Read() .Onde arranjaste esse codigo?
Quote
return((hi<<smiley-cool+low);//Nao sei que isto faz, 1º dúvida
A tua funçao devolte um int(2 bytes).Como tu queres retornar um int e leste byte a byte tens de os juntar.este << (operador) desloca para a esquerda 8 vezes o byte hi.Assim o resultado disso vai ser teres o hi byte e o lowbyte dentro do int retornado na funçao.
Em todo o caso olhando para as tua duvidas a seguir é semelhante mas o que prentendes fazer concretamente ?
Logged

Debian,Mint,Ubuntu
Arduino Mega 2560
Arduino Nano
Arduino Duemilanove
MAC OS Montain Lion
Raspberry PI Model B


Offline Offline
Full Member
***
Karma: 0
Posts: 183
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Será que podias-me explicar melhor?
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 41
Posts: 3113
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Esse código está incompleto.

Quando o meteste na IDE, ele compilou ou deu erros? Isto funciona? Ou não testaste ainda?

As tuas dúvidas são acerca de byte shift. Se procurares pelo termo na net é simples de perceber o que é. Basicamente estás a compôr uma variável de 16 bits com duas de 8 bits.
Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Offline Offline
Full Member
***
Karma: 0
Posts: 183
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Podem-me dar um exemplo?Já fiz uma pesquisa mas ainda não consegui perceber.
Logged

'round the world...
Offline Offline
Faraday Member
**
Karma: 41
Posts: 3113
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

http://social.msdn.microsoft.com/Forums/vstudio/en-US/0e2c882b-4bf4-4773-a7f0-233d8a6a2c15/byte-shifting

Vê a primeira resposta.

http://publib.boulder.ibm.com/infocenter/comphelp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8a.doc%2Flanguage%2Fref%2Fbitshe.htm

Se souberes tipos de dados e como os valores são guardados, isto é relativamente simples de compreender. Aliás, vai à calculadora do Windows, mete em modo programador.

Escreve 30000 e vais ver uma sequência de bits, correcto?

Essa sequência tem 2 bytes ou seja 16 bits. Ao fazeres byte shift estás efectivamente a passar os bytes para a direita ou esquerda.

Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

'round the world...
Offline Offline
Faraday Member
**
Karma: 41
Posts: 3113
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:

void setup() {
  Serial.begin(19200);
  unsigned int val_int = 1;
  for (unsigned char i=0; i<7; i++) {
     Serial.print("Shifting ");
     Serial.print(i);
     Serial.println("positions = ");
     Serial.println((val_int << i), BIN);
     Serial.println((val_int << i), DEC);
  }
}


void loop(){}

Logged

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

Pages: [1]   Go Up
Jump to: