Kuldip Maharjan
/
24LC256
This code does some basic stuff with an 24LC256 memory chip
Embed:
(wiki syntax)
Show/hide line numbers
main.cpp
00001 //Author: Kuldip Maharjan 00002 //Email : kuldipmaharjan@gmail.com 00003 //Anyone can use this code if it helps in their projects or 00004 //for learning programing in mbed besides for commercial purposes 00005 00006 00007 // This code does some basic stuff with an 24LC256 memory chip 00008 00009 #include "mbed.h" 00010 00011 I2C i2c(p28, p27); // sda, scl 00012 //DigitalOut wp(p29); // write protect 00013 00014 int main() 00015 { 00016 //wp = 0; // disable write protect 00017 printf("Writing bytes 0-16\n"); 00018 00019 char data[3]; 00020 for(int i=0; i<16; i++) { 00021 data[0] = 0; // MSB address 00022 data[1] = i; // LSB address 00023 data[2] = i * 3; // data 00024 if(i2c.write(0xA0, data, 3)) { 00025 error("Write failed\n"); 00026 } 00027 while(i2c.write(0xA0, NULL, 0)); // wait to complete 00028 } 00029 00030 data[0] = 0; // MSB address 00031 data[1] = 255; // LSB address 00032 data[2] = 'A'; // data 00033 if(i2c.write(0xA0, data, 3)) { 00034 error("Write failed\n"); 00035 } 00036 while(i2c.write(0xA0, NULL, 0)); // wait to complete 00037 00038 printf("Setting read pointer to 0\n"); 00039 00040 data[0] = 0; // MSB address 00041 data[1] = 0; // LSB address 00042 if(i2c.write(0xA0, data, 2)) { // send address, but no data 00043 error("Write failed\n"); 00044 } 00045 00046 printf("Reading back data bytes 0-16\n"); 00047 00048 char response[1]; 00049 for(int i=0; i<256; i++) { 00050 if(i2c.read(0xA0, response, 1)) { 00051 error("Read failed\n"); 00052 } 00053 printf("address %03d = 0x%02X\n", i, response[0]); 00054 } 00055 00056 }
Generated on Wed Jul 13 2022 15:44:03 by 1.7.2