]> git.donarmstrong.com Git - qmk_firmware.git/blobdiff - tmk_core/tool/mbed/mbed-sdk/libraries/tests/mbed/can/main.cpp
Merge commit '1fe4406f374291ab2e86e95a97341fd9c475fcb8'
[qmk_firmware.git] / tmk_core / tool / mbed / mbed-sdk / libraries / tests / mbed / can / main.cpp
diff --git a/tmk_core/tool/mbed/mbed-sdk/libraries/tests/mbed/can/main.cpp b/tmk_core/tool/mbed/mbed-sdk/libraries/tests/mbed/can/main.cpp
new file mode 100644 (file)
index 0000000..a05321a
--- /dev/null
@@ -0,0 +1,53 @@
+#include "mbed.h"
+
+Ticker ticker;
+DigitalOut led1(LED1);
+DigitalOut led2(LED2);
+
+#if defined(TARGET_LPC1549)
+// LPC1549 support only single CAN channel
+CAN can1(D2, D3);
+#else
+CAN can1(p9, p10);
+#endif
+
+#if defined(TARGET_LPC4088) || defined(TARGET_LPC4088_DM)
+CAN can2(p34, p33);
+#elif defined (TARGET_LPC1768)
+CAN can2(p30, p29);
+#endif
+char counter = 0;
+
+void printmsg(char *title, CANMessage *msg) {
+    printf("%s [%03X]", title, msg->id);
+    for(char i = 0; i < msg->len; i++) {
+        printf(" %02X", msg->data[i]);
+    }
+    printf("\n");
+}
+
+void send() {
+    printf("send()\n");
+    CANMessage msg = CANMessage(1337, &counter, 1);
+    if(can1.write(msg)) {
+        printmsg("Tx message:", &msg);
+        counter++;
+    }
+    led1 = !led1;
+}
+
+int main() {
+    printf("main()\n");
+    ticker.attach(&send, 1);
+    CANMessage msg;
+    while(1) {
+#if !defined(TARGET_LPC1549)
+        printf("loop()\n");
+        if(can2.read(msg)) {
+            printmsg("Rx message:", &msg);
+            led2 = !led2;
+        }
+#endif
+        wait(0.2);
+    }
+}