Jan Kamidra
/
CANLoop_EventQueue
CAN-BUS loop back with EventQueue
Embed:
(wiki syntax)
Show/hide line numbers
main.cpp
00001 #include "mbed.h" 00002 00003 DigitalOut led1(LED1); 00004 DigitalOut led2(LED2); 00005 DigitalOut led3(LED3); 00006 CAN can2(PB_8, PB_9); 00007 CAN can1(PB_12, PB_13); 00008 EventQueue queue(32 * EVENTS_EVENT_SIZE); 00009 Thread t; 00010 00011 char counter = 0; 00012 00013 void send() { 00014 printf("send()\n"); 00015 if(can1.write(CANMessage(1337, &counter, 1))) { 00016 counter++; 00017 printf("Message sent: %d\n", counter); 00018 led3 = !led3; 00019 } 00020 } 00021 00022 int main() { 00023 00024 t.start(callback(&queue, &EventQueue::dispatch_forever)); 00025 queue.call_every(1000, send); 00026 00027 CANMessage msg; 00028 while(1) { 00029 if(can2.read(msg)) { 00030 printf("Message received: %d\n", msg.data[0]); 00031 led2 = !led2; 00032 } 00033 wait(0.2); 00034 led1 = !led1; 00035 } 00036 00037 }
Generated on Fri Jul 15 2022 10:01:58 by 1.7.2