Vaughn Kottler
/
I2C
Discover I2C devices on a bus
main.cpp@0:4d662897d4a1, 2018-02-17 (annotated)
- Committer:
- vkottler
- Date:
- Sat Feb 17 23:51:25 2018 +0000
- Revision:
- 0:4d662897d4a1
I2C testing initial commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
vkottler | 0:4d662897d4a1 | 1 | #include "mbed.h" |
vkottler | 0:4d662897d4a1 | 2 | |
vkottler | 0:4d662897d4a1 | 3 | Serial pc(SERIAL_TX, SERIAL_RX); |
vkottler | 0:4d662897d4a1 | 4 | I2C i2c(D0, D1); |
vkottler | 0:4d662897d4a1 | 5 | |
vkottler | 0:4d662897d4a1 | 6 | DigitalOut myled(LED1); |
vkottler | 0:4d662897d4a1 | 7 | |
vkottler | 0:4d662897d4a1 | 8 | int main() { |
vkottler | 0:4d662897d4a1 | 9 | |
vkottler | 0:4d662897d4a1 | 10 | pc.baud(115200); |
vkottler | 0:4d662897d4a1 | 11 | int i = 1; |
vkottler | 0:4d662897d4a1 | 12 | int devices_found; |
vkottler | 0:4d662897d4a1 | 13 | uint8_t curr_addr; |
vkottler | 0:4d662897d4a1 | 14 | char data[1] = {'\0'}; |
vkottler | 0:4d662897d4a1 | 15 | pc.printf("\r\n"); |
vkottler | 0:4d662897d4a1 | 16 | pc.printf("Program begin\r\n"); |
vkottler | 0:4d662897d4a1 | 17 | wait(1); |
vkottler | 0:4d662897d4a1 | 18 | |
vkottler | 0:4d662897d4a1 | 19 | while(1) { |
vkottler | 0:4d662897d4a1 | 20 | |
vkottler | 0:4d662897d4a1 | 21 | devices_found = 0; |
vkottler | 0:4d662897d4a1 | 22 | myled = !myled; |
vkottler | 0:4d662897d4a1 | 23 | |
vkottler | 0:4d662897d4a1 | 24 | for (i = 0; i < 128; i++) { |
vkottler | 0:4d662897d4a1 | 25 | curr_addr = i << 1; |
vkottler | 0:4d662897d4a1 | 26 | if (!i2c.write(curr_addr, data, 1)) { |
vkottler | 0:4d662897d4a1 | 27 | pc.printf("found device at 0x%x\r\n", curr_addr); |
vkottler | 0:4d662897d4a1 | 28 | devices_found++; |
vkottler | 0:4d662897d4a1 | 29 | } |
vkottler | 0:4d662897d4a1 | 30 | wait(0.2); |
vkottler | 0:4d662897d4a1 | 31 | } |
vkottler | 0:4d662897d4a1 | 32 | |
vkottler | 0:4d662897d4a1 | 33 | pc.printf("%d devices found\r\n", devices_found); |
vkottler | 0:4d662897d4a1 | 34 | wait(2); |
vkottler | 0:4d662897d4a1 | 35 | } |
vkottler | 0:4d662897d4a1 | 36 | |
vkottler | 0:4d662897d4a1 | 37 | /* should never get here */ |
vkottler | 0:4d662897d4a1 | 38 | return 0; |
vkottler | 0:4d662897d4a1 | 39 | } |