Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
main.cpp@0:bdd449e55907, 2017-02-27 (annotated)
- Committer:
- rodrigogenes
- Date:
- Mon Feb 27 12:45:08 2017 +0000
- Revision:
- 0:bdd449e55907
- Child:
- 1:f77859e74071
I2C Communication
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
rodrigogenes | 0:bdd449e55907 | 1 | // Simple I2C responder |
rodrigogenes | 0:bdd449e55907 | 2 | #include <mbed.h> |
rodrigogenes | 0:bdd449e55907 | 3 | |
rodrigogenes | 0:bdd449e55907 | 4 | |
rodrigogenes | 0:bdd449e55907 | 5 | |
rodrigogenes | 0:bdd449e55907 | 6 | I2CSlave slave(D14, D15); |
rodrigogenes | 0:bdd449e55907 | 7 | |
rodrigogenes | 0:bdd449e55907 | 8 | int main() { |
rodrigogenes | 0:bdd449e55907 | 9 | |
rodrigogenes | 0:bdd449e55907 | 10 | DigitalOut myLED (LED2); |
rodrigogenes | 0:bdd449e55907 | 11 | |
rodrigogenes | 0:bdd449e55907 | 12 | |
rodrigogenes | 0:bdd449e55907 | 13 | |
rodrigogenes | 0:bdd449e55907 | 14 | |
rodrigogenes | 0:bdd449e55907 | 15 | slave.address(0x14); |
rodrigogenes | 0:bdd449e55907 | 16 | |
rodrigogenes | 0:bdd449e55907 | 17 | |
rodrigogenes | 0:bdd449e55907 | 18 | |
rodrigogenes | 0:bdd449e55907 | 19 | char buf[10]; |
rodrigogenes | 0:bdd449e55907 | 20 | |
rodrigogenes | 0:bdd449e55907 | 21 | |
rodrigogenes | 0:bdd449e55907 | 22 | |
rodrigogenes | 0:bdd449e55907 | 23 | |
rodrigogenes | 0:bdd449e55907 | 24 | while (1) { |
rodrigogenes | 0:bdd449e55907 | 25 | int i = slave.receive(); |
rodrigogenes | 0:bdd449e55907 | 26 | switch (i) { |
rodrigogenes | 0:bdd449e55907 | 27 | // case I2CSlave::ReadAddressed: |
rodrigogenes | 0:bdd449e55907 | 28 | |
rodrigogenes | 0:bdd449e55907 | 29 | // slave.write(5); // Includes null char |
rodrigogenes | 0:bdd449e55907 | 30 | |
rodrigogenes | 0:bdd449e55907 | 31 | // myLED=0; |
rodrigogenes | 0:bdd449e55907 | 32 | // break; |
rodrigogenes | 0:bdd449e55907 | 33 | //case I2CSlave::WriteGeneral: |
rodrigogenes | 0:bdd449e55907 | 34 | |
rodrigogenes | 0:bdd449e55907 | 35 | //to implement |
rodrigogenes | 0:bdd449e55907 | 36 | case I2CSlave::WriteAddressed: |
rodrigogenes | 0:bdd449e55907 | 37 | |
rodrigogenes | 0:bdd449e55907 | 38 | slave.read(buf, 10); |
rodrigogenes | 0:bdd449e55907 | 39 | |
rodrigogenes | 0:bdd449e55907 | 40 | if (buf ==1){ |
rodrigogenes | 0:bdd449e55907 | 41 | myLED=1; |
rodrigogenes | 0:bdd449e55907 | 42 | } |
rodrigogenes | 0:bdd449e55907 | 43 | |
rodrigogenes | 0:bdd449e55907 | 44 | break; |
rodrigogenes | 0:bdd449e55907 | 45 | } |
rodrigogenes | 0:bdd449e55907 | 46 | for(int i = 0; i < 10; i++) buf[i] = 0; // Clear buffer |
rodrigogenes | 0:bdd449e55907 | 47 | } |
rodrigogenes | 0:bdd449e55907 | 48 | } |