]> git.gir.st - tmk_keyboard.git/blob - tmk_core/tool/mbed/mbed-sdk/libraries/tests/mbed/can_interrupt/main.cpp
Merge commit '28203e909e83b1ac6becb45a3eadae23b190df32' into master-core-pull
[tmk_keyboard.git] / tmk_core / tool / mbed / mbed-sdk / libraries / tests / mbed / can_interrupt / 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)
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 #if !defined (TARGET_LPC1549)
40 void read() {
41 CANMessage msg;
42 printf("rx()\n");
43 if(can2.read(msg)) {
44 printmsg("Rx message:", &msg);
45 led2 = !led2;
46 }
47 }
48 #endif
49
50 int main() {
51 printf("main()\n");
52 ticker.attach(&send, 1);
53 #if !defined (TARGET_LPC1549)
54 can2.attach(&read);
55 #endif
56 while(1) {
57 printf("loop()\n");
58 wait(1);
59 }
60 }
Imprint / Impressum