Dependencies:   mbed

Committer:
simon
Date:
Tue Sep 08 11:50:46 2009 +0000
Revision:
0:ebb4c3fcf4a9

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
simon 0:ebb4c3fcf4a9 1 // Test24LC256 hello world example
simon 0:ebb4c3fcf4a9 2 // Copyright (c) 2009, sford
simon 0:ebb4c3fcf4a9 3 // Released under the MIT License: http://mbed.org/license/mit
simon 0:ebb4c3fcf4a9 4 //
simon 0:ebb4c3fcf4a9 5 // Does some basic stuff with an 24LC256 to show it is working
simon 0:ebb4c3fcf4a9 6
simon 0:ebb4c3fcf4a9 7 #include "mbed.h"
simon 0:ebb4c3fcf4a9 8
simon 0:ebb4c3fcf4a9 9 I2C i2c(p28, p27); // sda, scl
simon 0:ebb4c3fcf4a9 10 DigitalOut wp(p29); // write protect
simon 0:ebb4c3fcf4a9 11
simon 0:ebb4c3fcf4a9 12 int main() {
simon 0:ebb4c3fcf4a9 13
simon 0:ebb4c3fcf4a9 14 wp = 0; // disable write protect
simon 0:ebb4c3fcf4a9 15
simon 0:ebb4c3fcf4a9 16 printf("Writing bytes 0-16\n");
simon 0:ebb4c3fcf4a9 17
simon 0:ebb4c3fcf4a9 18 char data[3];
simon 0:ebb4c3fcf4a9 19 for(int i=0; i<16; i++) {
simon 0:ebb4c3fcf4a9 20 data[0] = 0; // MSB address
simon 0:ebb4c3fcf4a9 21 data[1] = i; // LSB address
simon 0:ebb4c3fcf4a9 22 data[2] = i * 3; // data
simon 0:ebb4c3fcf4a9 23 if(i2c.write(0xA0, data, 3)) {
simon 0:ebb4c3fcf4a9 24 error("Write failed\n");
simon 0:ebb4c3fcf4a9 25 }
simon 0:ebb4c3fcf4a9 26 while(i2c.write(0xA0, NULL, 0)); // wait to complete
simon 0:ebb4c3fcf4a9 27 }
simon 0:ebb4c3fcf4a9 28
simon 0:ebb4c3fcf4a9 29 printf("Setting read pointer to 0\n");
simon 0:ebb4c3fcf4a9 30
simon 0:ebb4c3fcf4a9 31 data[0] = 0; // MSB address
simon 0:ebb4c3fcf4a9 32 data[1] = 0; // LSB address
simon 0:ebb4c3fcf4a9 33 if(i2c.write(0xA0, data, 2)) { // send address, but no data
simon 0:ebb4c3fcf4a9 34 error("Write failed\n");
simon 0:ebb4c3fcf4a9 35 }
simon 0:ebb4c3fcf4a9 36
simon 0:ebb4c3fcf4a9 37 printf("Reading back data bytes 0-16\n");
simon 0:ebb4c3fcf4a9 38
simon 0:ebb4c3fcf4a9 39 char response[1];
simon 0:ebb4c3fcf4a9 40 for(int i=0; i<16; i++) {
simon 0:ebb4c3fcf4a9 41 if(i2c.read(0xA0, response, 1)) {
simon 0:ebb4c3fcf4a9 42 error("Read failed\n");
simon 0:ebb4c3fcf4a9 43 }
simon 0:ebb4c3fcf4a9 44 printf("address %03d = 0x%02X\n", i, response[0]);
simon 0:ebb4c3fcf4a9 45 }
simon 0:ebb4c3fcf4a9 46
simon 0:ebb4c3fcf4a9 47 }