Página 1 de 1
MikroC - I2C - 24LC512

Enviado:
21 Ago 2009 09:14
por roquetti
pessoall,
Bom dia,
Alguém tem algum exemplo em MikroC de I2C para comunicar com memória 24LC512?
Obrigado
Paulo Roquetti

Enviado:
21 Ago 2009 10:19
por tcpipchip
Tenho aqui...
Sei que funciona pq ja fiz um painel de mensagens com o mikroc e guardava as mensagens na 24LC256
No main() nao esqueca
I2C_Init(100000);
void SI2C_Write(unsigned int ee_adr, unsigned char dat)
{
I2C_Start(); // Issue I2C start signal
I2C_Wr(0xA0); // Send byte via I2C (device address + W)
I2C_Wr(ee_adr / 256); // Send byte (data address)
I2C_Wr(ee_adr % 256); // Send byte (data address)
I2C_Wr(dat); // Send byte (device address + R)
I2C_Stop();
delay_ms(10);
dat = SI2C_Read(ee_adr);
}
unsigned char SI2C_Read(unsigned int ee_adr)
{
unsigned char result;
I2C_Start(); // Issue I2C start signal
I2C_Wr(0xA0); // Send byte via I2C (device address + W)
I2C_Wr(ee_adr / 256); // Send byte (data address)
I2C_Wr(ee_adr % 256); // Send byte (data address)
I2C_Repeated_Start(); // Issue I2C signal repeated start
I2C_Wr(0xA1); // Send byte (device address + R)
result = I2C_Rd(0u); // Read the data (NO acknowledge)
I2C_Stop();
return(result);
}

Enviado:
21 Ago 2009 10:29
por roquetti
tcpipchip escreveu:Tenho aqui...
Sei que funciona pq ja fiz um painel de mensagens com o mikroc e guardava as mensagens na 24LC256
tcpipchip
valeu! vou montar o restante e testar, obrigado.
Paulo Roquetti

Enviado:
21 Ago 2009 12:31
por roquetti
tcpipchip escreveu:Tenho aqui...
Sei que funciona pq ja fiz um painel de mensagens com o mikroc e guardava as mensagens na 24LC256
}
Tô precisando das seguintes bibliotecas 24C04.h, 24C256.h e 24LC512.h, em mikroC, estou procurando na internet mas ainda não consegui, se puder me enviar agradeço.
Paulo Roquetti

Enviado:
21 Ago 2009 16:54
por tcpipchip
nao necessita de include #.h...
as rotinas que te passei valem para i2c com endereços acima de 255 (2 bytes)
para i2c com endereço abaixo de 256 (1 byte)
use as rotinas abaixo, mas botei um // comentario no que nao vais necessitar...
void SI2C_Write(unsigned int ee_adr, unsigned char dat)
{
I2C_Start(); // Issue I2C start signal
I2C_Wr(0xA0); // Send byte via I2C (device address + W)
I2C_Wr(ee_adr / 256); // Send byte (data address)
//I2C_Wr(ee_adr % 256); // Send byte (data address)
I2C_Wr(dat); // Send byte (device address + R)
I2C_Stop();
delay_ms(10);
dat = SI2C_Read(ee_adr);
}
unsigned char SI2C_Read(unsigned int ee_adr)
{
unsigned char result;
I2C_Start(); // Issue I2C start signal
I2C_Wr(0xA0); // Send byte via I2C (device address + W)
I2C_Wr(ee_adr / 256); // Send byte (data address)
//I2C_Wr(ee_adr % 256); // Send byte (data address)
I2C_Repeated_Start(); // Issue I2C signal repeated start
I2C_Wr(0xA1); // Send byte (device address + R)
result = I2C_Rd(0u); // Read the data (NO acknowledge)
I2C_Stop();
return(result);
}

Enviado:
22 Ago 2009 01:26
por roquetti
é, eu consegui fazer funcionar sem o .h, é isto mesmo, consegui achar na própria instalação do MikroC vários exemplos,
Muito obrigado pela ajuda.
Abração.