ajuda salvar dado serial at24c256

Software e Hardware para linha x51

Moderadores: 51, guest2003, Renie, gpenga

ajuda salvar dado serial at24c256

Mensagempor Meson » 03 Mai 2010 16:10

Amigos estou com dificuldades em conseguir transformar um sequencia de bits (1 byte ) para ser mais exato que estou recebendo de uma memoria i2c at24c256 e salvar em uma variável. por favor alguem pode me ajudar!

Código: Selecionar todos
void le_byte2() {
for (i = 1; i <= 8; i++) // read the msb first
{
 SCL = 1;

 buffer[i]=SDA; // subistituir aqui por operação de deslocamento de bit, (salvar em uma variavel char dado por exemplo.

 SCL = 0;
}



Atualmente uso este recurso que é um pouco burro , gostaria de salvar diretamente em uma variável qualquer, por exemplo em uma char c; sei que da para fazer isso usando uma operação de deslocamento de bits, pois faço assim para escrever, so não sei como fazer o caminho inverso .

Por favor me ajudem, desde já eu agradeço!

veja como eu faço para gravar.

Código: Selecionar todos
void I2C_write(unsigned char d) /* ----------------------------- */

{
unsigned char k;
SCL = 0;
for (k= 1; k <= 8; k++)
{
SDA = (d >> 7);

SCL = 1;
d = d << 1; /* increase scl high time */
SCL = 0;
}
SDA = 1; /* Release the sda line */
SCL = 0;
SCL = 1;

}
Meson
Nibble
 
Mensagens: 54
Registrado em: 13 Out 2006 08:31

Mensagempor Meson » 03 Mai 2010 18:06

alguem poderia por favor ajuda com qualquer coisa?
Meson
Nibble
 
Mensagens: 54
Registrado em: 13 Out 2006 08:31

Mensagempor lopesjm » 03 Mai 2010 22:04

Olá Meson,


Creio que nesta thread tem o que você quer:

http://asm51.eng.br/phpBB/viewtopic.php?t=8951

Jorge
lopesjm
Byte
 
Mensagens: 133
Registrado em: 26 Out 2006 12:40

Mensagempor deniro » 04 Mai 2010 13:13

Bom eu creio que seja isto que voce quer.

unsigned char i2c_read_char(void)
{
unsigned char res=0;
unsigned char cnt;
for ( cnt=0;cnt<8;cnt++ )
{
SDA= TRUE;
SCL= TRUE;
res<<=1;
if (SDA) { res |= 0x01; }
SCL= FALSE;
}
return res;
}


até
Avatar do usuário
deniro
Byte
 
Mensagens: 135
Registrado em: 19 Out 2006 20:18
Localização: Rio de Janeiro

Mensagempor Meson » 04 Mai 2010 17:52

valeu galera! Valeu lopes! Valeu deniro! deu certo usei o que o deniro postou e consegui salvar em uma variavel global!
Meson
Nibble
 
Mensagens: 54
Registrado em: 13 Out 2006 08:31


Voltar para 8051

Quem está online

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

x