PDA

Ver la Versión Completa : como usar un pic y una memoria 24c02 si los pines scl y sda ya los estoy usando ?


Mikro-77
06-01-2013, 15:20:11
Hola buen dia tengo un problema que es el de querer usar un pic y una memoria eeprom , mi problema es que ya estoy usando los pines scl y sda del pic para leer el estado de un sht75 de sensirion (sensor de temperatura y humedad) entonces que tendria que hacer ? conecto en paralelo la memoria o tengo que usar otra forma de conección y usar otro codigo ? buscando en internet encontre esto
program I2C_Simple;
begin
ANSEL := 0; ANSELH := 0; PORTB := 0; TRISB := 0;
I2C1_init(100000);
I2C1_Start();
I2C1_Wr(0xA2);
I2C1_Wr(2);
I2C1_Wr(0xAA);
I2C1_Stop();
Delay_100ms();
I2C1_Start();
I2C1_Wr(0xA2);
I2C1_Wr(2);
I2C1_Repeated_Start();
I2C1_Wr(0xA3);
PORTB := I2C1_Rd(0);
I2C1_Stop();
end.
el caso es que quiero guardar mi configuracion , no la lectura del sensor !

Gracias de antemano !!.

Mikro-77
06-01-2013, 15:21:07
Perdón por el codigo pero en la vista previa me lo mostro bien !

Casimiro Notevi
06-01-2013, 17:39:47
Perdón por el codigo pero en la vista previa me lo mostro bien !
La vista previa, algunas veces, no va bien.

Mikro-77
06-01-2013, 18:00:56
Gracias casimiro por arreglar el codigo !

Mikro-77
14-01-2013, 03:12:56
program pascalI2c;

var EE_adr, EE_data : byte; jj : word;

begin
I2C_init(100000); // initialize full master mode
TRISD := 0; // designate portd as output
PORTD := $ff; // initialize portd
I2C_Start; // issue I2C start signal
I2C_Wr($a2); // send byte via I2C(command to 24cO2)
EE_adr := 2;
I2C_Wr(EE_adr); // send byte(address for EEPROM)
EE_data := $aa;
I2C_Wr(EE_data); // send data to be written
I2C_Stop; // issue I2C stop signal
for jj:=0 to 65500 do nop; // pause while EEPROM writes data
I2C_Start; // issue I2C start signal
I2C_Wr($a2); // send byte via I2C
EE_adr := 2; I2C_Wr(EE_adr); // send byte(address for EEPROM)
I2C_Repeated_Start; // issue I2Csignal repeated start
I2C_Wr($a3); // send byte(request data from EEPROM)
k := I2C_rd(1); // read the data
I2C_Stop; // issue I2C_stop signal
PORTD := k; // show data on PORTD

while true do // endless loop
nop;
end.

fenixariel
16-03-2013, 23:41:19
Practicamente cualquier compilador incorpora librerias I2C tanto por Hardware como por Software.



Saludos.