Testing CAN network with two nodes in loopback

Dependencies:   mbed

Committer:
kaspars
Date:
Mon Jan 07 20:01:42 2013 +0000
Revision:
1:f3252017074f
Parent:
0:7db10104e3a4
Add propper line breaks

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kaspars 0:7db10104e3a4 1 #include "mbed.h"
kaspars 0:7db10104e3a4 2
kaspars 0:7db10104e3a4 3 Ticker ticker;
kaspars 0:7db10104e3a4 4 DigitalOut led1(LED1);
kaspars 0:7db10104e3a4 5 DigitalOut led2(LED2);
kaspars 0:7db10104e3a4 6 CAN can1(p9, p10);
kaspars 0:7db10104e3a4 7 CAN can2(p30, p29);
kaspars 0:7db10104e3a4 8 char counter = 0;
kaspars 0:7db10104e3a4 9
kaspars 0:7db10104e3a4 10 void send() {
kaspars 0:7db10104e3a4 11 if(can1.write(CANMessage(1337, &counter, 1))) {
kaspars 0:7db10104e3a4 12 counter++;
kaspars 1:f3252017074f 13 printf("Message sent: %d\r\n", counter);
kaspars 0:7db10104e3a4 14 }
kaspars 0:7db10104e3a4 15
kaspars 0:7db10104e3a4 16 printf("CAN1 rderror: %d, tderror: %d\r\n", can1.rderror(), can1.tderror() );
kaspars 0:7db10104e3a4 17 printf("CAN2 rderror: %d, tderror: %d\r\n", can2.rderror(), can2.tderror() );
kaspars 0:7db10104e3a4 18
kaspars 0:7db10104e3a4 19 led1 = !led1;
kaspars 0:7db10104e3a4 20 }
kaspars 0:7db10104e3a4 21
kaspars 0:7db10104e3a4 22 int main() {
kaspars 0:7db10104e3a4 23 ticker.attach(&send, 1);
kaspars 0:7db10104e3a4 24 CANMessage msg;
kaspars 0:7db10104e3a4 25 while(1) {
kaspars 0:7db10104e3a4 26 if(can2.read(msg)) {
kaspars 1:f3252017074f 27 printf("Message received: %d\r\n", msg.data[0]);
kaspars 0:7db10104e3a4 28 led2 = !led2;
kaspars 0:7db10104e3a4 29 }
kaspars 0:7db10104e3a4 30 wait(0.2);
kaspars 0:7db10104e3a4 31 }
kaspars 0:7db10104e3a4 32 }