![](/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_I2C 00005 #error [NOT_SUPPORTED] I2C is not supported 00006 #endif 00007 00008 #define SIZE (10) 00009 #define ADDR (0x90) 00010 00011 #if defined(TARGET_KL25Z) 00012 I2C i2c(PTE0, PTE1); 00013 #elif defined(TARGET_nRF51822) 00014 I2C i2c(p22,p20); 00015 #elif defined(TARGET_NUCLEO_F411RE) || defined(TARGET_NUCLEO_F429ZI) || defined(TARGET_NUCLEO_F446RE) 00016 #define TEST_SDA_PIN PB_9 00017 #define TEST_SCL_PIN PB_8 00018 I2C i2c(TEST_SDA_PIN, TEST_SCL_PIN); // I2C_1 (Arduino: D14/D15) 00019 #elif defined(TARGET_FF_ARDUINO) || defined(TARGET_MAXWSNENV) 00020 I2C i2c(I2C_SDA, I2C_SCL); 00021 #elif defined(TARGET_EFM32LG_STK3600) || defined(TARGET_EFM32GG_STK3700) || defined(TARGET_EFM32WG_STK3800) 00022 #define TEST_SDA_PIN PD6 00023 #define TEST_SCL_PIN PD7 00024 I2C i2c(TEST_SDA_PIN, TEST_SCL_PIN); 00025 #elif defined(TARGET_EFM32ZG_STK3200) 00026 #define TEST_SDA_PIN PE12 00027 #define TEST_SCL_PIN PE13 00028 I2C i2c(TEST_SDA_PIN, TEST_SCL_PIN); 00029 #elif defined(TARGET_EFM32HG_STK3400) 00030 #define TEST_SDA_PIN PD6 00031 #define TEST_SCL_PIN PD7 00032 I2C i2c(TEST_SDA_PIN, TEST_SCL_PIN); 00033 #elif defined(TARGET_EFM32PG_STK3401) 00034 #define TEST_SDA_PIN PC10 00035 #define TEST_SCL_PIN PC11 00036 I2C i2c(TEST_SDA_PIN, TEST_SCL_PIN); 00037 #elif defined(TARGET_SAMR21G18A) 00038 #define TEST_SDA_PIN PA16 00039 #define TEST_SCL_PIN PA17 00040 I2C i2c(TEST_SDA_PIN, TEST_SCL_PIN); 00041 #elif defined(TARGET_SAMD21J18A) || defined(TARGET_SAMD21G18A) || defined(TARGET_SAML21J18A) 00042 #define TEST_SDA_PIN PA08 00043 #define TEST_SCL_PIN PA09 00044 I2C i2c(TEST_SDA_PIN, TEST_SCL_PIN); 00045 #elif defined(TARGET_SAMG55J19) 00046 #define TEST_SDA_PIN PA10 00047 #define TEST_SCL_PIN PA09 00048 I2C i2c(TEST_SDA_PIN, TEST_SCL_PIN); 00049 #else 00050 I2C i2c(p28, p27); 00051 #endif 00052 00053 int main() { 00054 bool success = true; 00055 char buf[] = {3, 2, 1, 4, 5, 6, 7, 8, 9, 10}; 00056 char res[SIZE]; 00057 00058 i2c.write(ADDR, buf, SIZE); 00059 i2c.read(ADDR, res, SIZE); 00060 00061 // here should be buf[all]++ 00062 i2c.write(ADDR, res, SIZE); 00063 i2c.read(ADDR, res, SIZE); 00064 00065 // here should be buf[all]+=2 00066 i2c.write(ADDR, res, SIZE); 00067 i2c.write(ADDR, res, SIZE); 00068 00069 // here should be buf[all]+=3 00070 i2c.read(ADDR, res, SIZE); 00071 i2c.read(ADDR, res, SIZE); 00072 00073 for(int i = 0; i < SIZE; i++) { 00074 if (res[i] != (buf[i] + 3)) { 00075 success = false; 00076 break; 00077 } 00078 } 00079 00080 notify_completion(success); 00081 }
Generated on Sun Jul 17 2022 08:25:26 by
![doxygen](doxygen.png)