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.
features/unsupported/tests/mbed/i2c_slave/main.cpp@1:2b6e8130a0ac, 2018-02-22 (annotated)
- Committer:
- calmantara186
- Date:
- Thu Feb 22 14:05:19 2018 +0000
- Revision:
- 1:2b6e8130a0ac
- Parent:
- 0:f269e3021894
mbed os
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| elessair | 0:f269e3021894 | 1 | #include "mbed.h" |
| elessair | 0:f269e3021894 | 2 | #include "test_env.h" |
| elessair | 0:f269e3021894 | 3 | |
| elessair | 0:f269e3021894 | 4 | #if !DEVICE_I2CSLAVE |
| elessair | 0:f269e3021894 | 5 | #error [NOT_SUPPORTED] I2C Slave is not supported |
| elessair | 0:f269e3021894 | 6 | #endif |
| elessair | 0:f269e3021894 | 7 | |
| elessair | 0:f269e3021894 | 8 | #define SIZE (10) |
| elessair | 0:f269e3021894 | 9 | #define ADDR (0x90) |
| elessair | 0:f269e3021894 | 10 | |
| elessair | 0:f269e3021894 | 11 | #if defined(TARGET_KL25Z) |
| elessair | 0:f269e3021894 | 12 | I2CSlave slave(PTE0, PTE1); |
| elessair | 0:f269e3021894 | 13 | #elif defined(TARGET_LPC4088) |
| elessair | 0:f269e3021894 | 14 | I2CSlave slave(p9, p10); |
| elessair | 0:f269e3021894 | 15 | #elif defined(TARGET_SAMR21G18A) |
| elessair | 0:f269e3021894 | 16 | I2CSlave slave(PA16, PA17); |
| elessair | 0:f269e3021894 | 17 | #elif defined(TARGET_SAMD21J18A) || defined(TARGET_SAMD21G18A) || defined(TARGET_SAML21J18A) |
| elessair | 0:f269e3021894 | 18 | I2CSlave slave(PA08, PA09); |
| elessair | 0:f269e3021894 | 19 | #elif defined(TARGET_NUCLEO_F411RE) || defined(TARGET_NUCLEO_F446RE) |
| elessair | 0:f269e3021894 | 20 | //I2C master(PB_9, PB_8); // I2C_1 (Arduino: D14/D15) |
| elessair | 0:f269e3021894 | 21 | I2CSlave slave(PB_3, PB_10); // I2C_2 (Arduino: D3/D6) |
| elessair | 0:f269e3021894 | 22 | #elif defined(TARGET_NUCLEO_F429ZI) |
| elessair | 0:f269e3021894 | 23 | I2CSlave slave(PB_11, PB_10); // I2C_2 |
| elessair | 0:f269e3021894 | 24 | #elif defined(TARGET_FF_ARDUINO) |
| elessair | 0:f269e3021894 | 25 | I2CSlave slave(I2C_SDA, I2C_SCL); |
| elessair | 0:f269e3021894 | 26 | #elif defined(TARGET_SAMG55J19) |
| elessair | 0:f269e3021894 | 27 | I2CSlave slave(PA10, PA09); |
| elessair | 0:f269e3021894 | 28 | #else |
| elessair | 0:f269e3021894 | 29 | I2CSlave slave(p28, p27); |
| elessair | 0:f269e3021894 | 30 | #endif |
| elessair | 0:f269e3021894 | 31 | |
| elessair | 0:f269e3021894 | 32 | int main() { |
| elessair | 0:f269e3021894 | 33 | char buf[SIZE]; |
| elessair | 0:f269e3021894 | 34 | |
| elessair | 0:f269e3021894 | 35 | slave.address(ADDR); |
| elessair | 0:f269e3021894 | 36 | |
| elessair | 0:f269e3021894 | 37 | while (1) { |
| elessair | 0:f269e3021894 | 38 | int i = slave.receive(); |
| elessair | 0:f269e3021894 | 39 | switch (i) { |
| elessair | 0:f269e3021894 | 40 | case I2CSlave::ReadAddressed: |
| elessair | 0:f269e3021894 | 41 | slave.write(buf, SIZE); |
| elessair | 0:f269e3021894 | 42 | for(int i = 0; i < SIZE; i++){ |
| elessair | 0:f269e3021894 | 43 | } |
| elessair | 0:f269e3021894 | 44 | break; |
| elessair | 0:f269e3021894 | 45 | case I2CSlave::WriteAddressed: |
| elessair | 0:f269e3021894 | 46 | slave.read(buf, SIZE); |
| elessair | 0:f269e3021894 | 47 | for(int i = 0; i < SIZE; i++){ |
| elessair | 0:f269e3021894 | 48 | buf[i]++; |
| elessair | 0:f269e3021894 | 49 | } |
| elessair | 0:f269e3021894 | 50 | break; |
| elessair | 0:f269e3021894 | 51 | } |
| elessair | 0:f269e3021894 | 52 | } |
| elessair | 0:f269e3021894 | 53 | } |