Simple program detecting if a DS1307 is connected

Dependencies:   mbed

Import program

00001 #include "mbed.h"
00002   
00003 I2C i2cBus(I2C_SDA, I2C_SCL);
00004  
00005 int main()
00006 {
00007        i2cBus.frequency(100000);
00008        
00009        int i2cAddres=0x68;                // Address of DS1307 is 0x68 (7 bit address)
00010        int i2c8BitAddres= i2cAddres <<1;  // Convert to 8bit addressing used by mbed 
00011     
00012        int result=i2cBus.write(i2c8BitAddres, NULL, 0);  
00013         
00014         //0 on success (ack), non-0 on failure (nack)                  
00015        if (result==0)   
00016             printf("I2C device found at address 0x%02X             \r\n", i2cAddres);
00017         else
00018             printf("I2C device Not found at address 0x%02X         \r\n", i2cAddres);              
00019 }
00020  
Committer:
rlanghbv
Date:
Mon Nov 09 13:39:59 2015 +0000
Revision:
0:81fa0e3e8a6c
Child:
1:2d9d32fc4f5d
First Commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rlanghbv 0:81fa0e3e8a6c 1 #include "mbed.h"
rlanghbv 0:81fa0e3e8a6c 2
rlanghbv 0:81fa0e3e8a6c 3 //SDA , SCL
rlanghbv 0:81fa0e3e8a6c 4 I2C i2cBus(PB_9, PB_8);
rlanghbv 0:81fa0e3e8a6c 5
rlanghbv 0:81fa0e3e8a6c 6 int main()
rlanghbv 0:81fa0e3e8a6c 7 {
rlanghbv 0:81fa0e3e8a6c 8 i2cBus.frequency(100000);
rlanghbv 0:81fa0e3e8a6c 9
rlanghbv 0:81fa0e3e8a6c 10 //Scan the valid I2C addresrange: 0x3 to 0x77
rlanghbv 0:81fa0e3e8a6c 11 for (int i2cAddres=3; i2cAddres<=0x77; i2cAddres++) {
rlanghbv 0:81fa0e3e8a6c 12 if (!i2cBus.write(i2cAddres<<1, NULL, 0)) { // 0 if a device ACK'ed the message
rlanghbv 0:81fa0e3e8a6c 13 printf("\r\nI2C device found at address 0x%02X \r\n", i2cAddres);
rlanghbv 0:81fa0e3e8a6c 14 }
rlanghbv 0:81fa0e3e8a6c 15 }
rlanghbv 0:81fa0e3e8a6c 16 }
rlanghbv 0:81fa0e3e8a6c 17