]> git.donarmstrong.com Git - qmk_firmware.git/blob - 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
1 #include "mbed.h"
2
3 Ticker ticker;
4 DigitalOut led1(LED1);
5 DigitalOut led2(LED2);
6
7 #if defined(TARGET_LPC1549)
8 // LPC1549 support only single CAN channel
9 CAN can1(D2, D3);
10 #else
11 CAN can1(p9, p10);
12 #endif
13
14 #if defined(TARGET_LPC4088) || defined(TARGET_LPC4088_DM)
15 CAN can2(p34, p33);
16 #elif defined (TARGET_LPC1768)
17 CAN can2(p30, p29);
18 #endif
19 char counter = 0;
20
21 void printmsg(char *title, CANMessage *msg) {
22     printf("%s [%03X]", title, msg->id);
23     for(char i = 0; i < msg->len; i++) {
24         printf(" %02X", msg->data[i]);
25     }
26     printf("\n");
27 }
28
29 void send() {
30     printf("send()\n");
31     CANMessage msg = CANMessage(1337, &counter, 1);
32     if(can1.write(msg)) {
33         printmsg("Tx message:", &msg);
34         counter++;
35     }
36     led1 = !led1;
37 }
38
39 int main() {
40     printf("main()\n");
41     ticker.attach(&send, 1);
42     CANMessage msg;
43     while(1) {
44 #if !defined(TARGET_LPC1549)
45         printf("loop()\n");
46         if(can2.read(msg)) {
47             printmsg("Rx message:", &msg);
48             led2 = !led2;
49         }
50 #endif
51         wait(0.2);
52     }
53 }