Preliminary main mbed library for nexpaq development

Revision:
0:6c56fb4bc5f0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libraries/tests/mbed/i2c_master/main.cpp	Fri Nov 04 20:27:58 2016 +0000
@@ -0,0 +1,77 @@
+#include "mbed.h"
+#include "test_env.h"
+
+#if !DEVICE_I2C
+  #error [NOT_SUPPORTED] I2C is not supported
+#endif
+
+#define SIZE (10)
+#define ADDR (0x90)
+
+#if defined(TARGET_KL25Z)
+I2C i2c(PTE0, PTE1);
+#elif defined(TARGET_nRF51822)
+I2C i2c(p22,p20);
+#elif defined(TARGET_FF_ARDUINO) || defined(TARGET_MAXWSNENV)
+I2C i2c(I2C_SDA, I2C_SCL);
+#elif defined(TARGET_EFM32LG_STK3600) || defined(TARGET_EFM32GG_STK3700) || defined(TARGET_EFM32WG_STK3800)
+#define TEST_SDA_PIN PD6
+#define TEST_SCL_PIN PD7
+I2C i2c(TEST_SDA_PIN, TEST_SCL_PIN);
+#elif defined(TARGET_EFM32ZG_STK3200)
+#define TEST_SDA_PIN PE12
+#define TEST_SCL_PIN PE13
+I2C i2c(TEST_SDA_PIN, TEST_SCL_PIN);
+#elif defined(TARGET_EFM32HG_STK3400)
+#define TEST_SDA_PIN PD6
+#define TEST_SCL_PIN PD7
+I2C i2c(TEST_SDA_PIN, TEST_SCL_PIN);
+#elif defined(TARGET_EFM32PG_STK3401)
+#define TEST_SDA_PIN PC10
+#define TEST_SCL_PIN PC11
+I2C i2c(TEST_SDA_PIN, TEST_SCL_PIN);
+#elif defined(TARGET_SAMR21G18A)
+#define TEST_SDA_PIN PA16
+#define TEST_SCL_PIN PA17
+I2C i2c(TEST_SDA_PIN, TEST_SCL_PIN);
+#elif defined(TARGET_SAMD21J18A) || defined(TARGET_SAMD21G18A) || defined(TARGET_SAML21J18A)
+#define TEST_SDA_PIN PA08
+#define TEST_SCL_PIN PA09
+I2C i2c(TEST_SDA_PIN, TEST_SCL_PIN);
+#elif defined(TARGET_SAMG55J19)
+#define TEST_SDA_PIN PA10
+#define TEST_SCL_PIN PA09
+I2C i2c(TEST_SDA_PIN, TEST_SCL_PIN);
+#else
+I2C i2c(p28, p27);
+#endif
+
+int main() {
+    bool success = true;
+    char buf[] = {3, 2, 1, 4, 5, 6, 7, 8, 9, 10};
+    char res[SIZE];
+
+    i2c.write(ADDR, buf, SIZE);
+    i2c.read(ADDR, res, SIZE);
+
+    // here should be buf[all]++
+    i2c.write(ADDR, res, SIZE);
+    i2c.read(ADDR, res, SIZE);
+
+    // here should be buf[all]+=2
+    i2c.write(ADDR, res, SIZE);
+    i2c.write(ADDR, res, SIZE);
+
+    // here should be buf[all]+=3
+    i2c.read(ADDR, res, SIZE);
+    i2c.read(ADDR, res, SIZE);
+
+    for(int i = 0; i < SIZE; i++) {
+        if (res[i] != (buf[i] + 3)) {
+            success = false;
+            break;
+        }
+    }
+
+    notify_completion(success);
+}