Testing CAN network with two nodes in loopback

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002  
00003 Ticker ticker;
00004 DigitalOut led1(LED1);
00005 DigitalOut led2(LED2);
00006 CAN can1(p9, p10);
00007 CAN can2(p30, p29);
00008 char counter = 0;
00009  
00010 void send() {
00011     if(can1.write(CANMessage(1337, &counter, 1))) {
00012         counter++;
00013         printf("Message sent: %d\r\n", counter);
00014     }
00015     
00016     printf("CAN1 rderror: %d, tderror: %d\r\n", can1.rderror(), can1.tderror() );
00017     printf("CAN2 rderror: %d, tderror: %d\r\n", can2.rderror(), can2.tderror() );
00018     
00019     led1 = !led1;
00020 }
00021  
00022 int main() {
00023     ticker.attach(&send, 1);
00024     CANMessage msg;
00025     while(1) {
00026         if(can2.read(msg)) {
00027             printf("Message received: %d\r\n", msg.data[0]);
00028             led2 = !led2;
00029         } 
00030         wait(0.2);
00031     }
00032 }