أشكرك أخي حسن
لم تعمل
أريد القراءة فقط
|
سلام عليكم
اخي كريم هذا كود كامل تم تجربته وهو يعمل
بالبدايه تتم عمليه كتابه
وهذا كود كتابه لاحظ البيانات هي 0xaa
كود:
I2C1_Init(100000); // initialize I2C communication
I2C1_Start(); // issue I2C start signal
I2C1_Wr(0xA2); // send byte via I2C (device address + W)
I2C1_Wr(2); // send byte (address of EEPROM location)
I2C1_Wr(0xaa); // send data (data to be written)
I2C1_Stop(); // issue I2C stop signal
وهذا كود لقراءه هذه البيانات من موقع الذي تم خزنه
كود:
I2C1_Start(); // issue I2C start signal
I2C1_Wr(0xA2); // send byte via I2C (device address + W)
I2C1_Wr(2); // send byte (data address)
I2C1_Repeated_Start(); // issue I2C signal repeated start
I2C1_Wr(0xA3); // send byte (device address + R)
portb = I2C1_Rd(0); // Read the data (NO acknowledge)
I2C1_Stop(); // issue I2C stop signal
هنا سوف يتم خزن البيانات في بورت b طبعا يمكن حفظه في اي مكان
وهذا كود كامل كتابه اولا ثم قراءه ثانيا
كود:
I2C1_Init(100000); // initialize I2C communication
I2C1_Start(); // issue I2C start signal
I2C1_Wr(0xA2); // send byte via I2C (device address + W)
I2C1_Wr(2); // send byte (address of EEPROM location)
I2C1_Wr(0xaa); // send data (data to be written)
I2C1_Stop(); // issue I2C stop signal
Delay_100ms();
I2C1_Start(); // issue I2C start signal
I2C1_Wr(0xA2); // send byte via I2C (device address + W)
I2C1_Wr(2); // send byte (data address)
I2C1_Repeated_Start(); // issue I2C signal repeated start
I2C1_Wr(0xA3); // send byte (device address + R)
portb = I2C1_Rd(0); // Read the data (NO acknowledge)
I2C1_Stop(); // issue I2C stop signal