mDot / Mbed OS I2C_scaner_5
Committer:
Roietronics
Date:
Thu Dec 15 09:37:19 2016 +0000
Revision:
0:f4dce843ac31
Child:
1:6282a1ee1391
project name changed to I2C_scanner_5 to match mbed 2 version name

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Roietronics 0:f4dce843ac31 1 // Original program found here: http://playground.arduino.cc/Main/I2cScanner
Roietronics 0:f4dce843ac31 2 // Modified by Domen Ornik, 4.5.2015
Roietronics 0:f4dce843ac31 3
Roietronics 0:f4dce843ac31 4 #include "mbed.h"
Roietronics 0:f4dce843ac31 5
Roietronics 0:f4dce843ac31 6 I2C i2c(I2C_SDA , I2C_SCL );
Roietronics 0:f4dce843ac31 7
Roietronics 0:f4dce843ac31 8 int main() {
Roietronics 0:f4dce843ac31 9 printf("\nI2C Scanner");
Roietronics 0:f4dce843ac31 10
Roietronics 0:f4dce843ac31 11 while(1) {
Roietronics 0:f4dce843ac31 12 int error, address;
Roietronics 0:f4dce843ac31 13 int nDevices;
Roietronics 0:f4dce843ac31 14
Roietronics 0:f4dce843ac31 15 printf("Scanning...\n");
Roietronics 0:f4dce843ac31 16
Roietronics 0:f4dce843ac31 17 nDevices = 0;
Roietronics 0:f4dce843ac31 18
Roietronics 0:f4dce843ac31 19 for(address = 1; address < 127; address++ )
Roietronics 0:f4dce843ac31 20 {
Roietronics 0:f4dce843ac31 21 i2c.start();
Roietronics 0:f4dce843ac31 22 error = i2c.write(address << 1); //We shift it left because mbed takes in 8 bit addreses
Roietronics 0:f4dce843ac31 23 i2c.stop();
Roietronics 0:f4dce843ac31 24 if (error == 1)
Roietronics 0:f4dce843ac31 25 {
Roietronics 0:f4dce843ac31 26 printf("I2C device found at address 0x%X", address); //Returns 7-bit addres
Roietronics 0:f4dce843ac31 27 nDevices++;
Roietronics 0:f4dce843ac31 28 }
Roietronics 0:f4dce843ac31 29
Roietronics 0:f4dce843ac31 30 }
Roietronics 0:f4dce843ac31 31 if (nDevices == 0)
Roietronics 0:f4dce843ac31 32 printf("No I2C devices found\n");
Roietronics 0:f4dce843ac31 33 else
Roietronics 0:f4dce843ac31 34 printf("\ndone\n");
Roietronics 0:f4dce843ac31 35
Roietronics 0:f4dce843ac31 36 wait(5); // wait 5 seconds for next scan
Roietronics 0:f4dce843ac31 37
Roietronics 0:f4dce843ac31 38 }
Roietronics 0:f4dce843ac31 39 }
Roietronics 0:f4dce843ac31 40