![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
Rtos API example
Embed:
(wiki syntax)
Show/hide line numbers
main.cpp
00001 #include "mbed.h" 00002 #include "test_env.h" 00003 00004 #if !DEVICE_I2CSLAVE 00005 #error [NOT_SUPPORTED] I2C Slave is not supported 00006 #endif 00007 00008 #define SIZE (10) 00009 #define ADDR (0x90) 00010 00011 #if defined(TARGET_KL25Z) 00012 I2CSlave slave(PTE0, PTE1); 00013 #elif defined(TARGET_LPC4088) 00014 I2CSlave slave(p9, p10); 00015 #elif defined(TARGET_SAMR21G18A) 00016 I2CSlave slave(PA16, PA17); 00017 #elif defined(TARGET_SAMD21J18A) || defined(TARGET_SAMD21G18A) || defined(TARGET_SAML21J18A) 00018 I2CSlave slave(PA08, PA09); 00019 #elif defined(TARGET_NUCLEO_F446RE) 00020 I2CSlave slave(PB_3, PB_10); // I2C_2 (Arduino: D3/D6) 00021 #elif defined(TARGET_NUCLEO_F429ZI) 00022 I2CSlave slave(PB_11, PB_10); // I2C_2 00023 #elif defined(TARGET_FF_ARDUINO) 00024 I2CSlave slave(I2C_SDA, I2C_SCL); 00025 #elif defined(TARGET_SAMG55J19) 00026 I2CSlave slave(PA10, PA09); 00027 #else 00028 I2CSlave slave(p28, p27); 00029 #endif 00030 00031 int main() { 00032 char buf[SIZE]; 00033 00034 slave.address(ADDR); 00035 00036 while (1) { 00037 int i = slave.receive(); 00038 switch (i) { 00039 case I2CSlave::ReadAddressed: 00040 slave.write(buf, SIZE); 00041 for(int i = 0; i < SIZE; i++){ 00042 } 00043 break; 00044 case I2CSlave::WriteAddressed: 00045 slave.read(buf, SIZE); 00046 for(int i = 0; i < SIZE; i++){ 00047 buf[i]++; 00048 } 00049 break; 00050 } 00051 } 00052 }
Generated on Sun Jul 17 2022 08:25:26 by
![doxygen](doxygen.png)