Jan Kamidra
/
CANLoop_EventQueue
CAN-BUS loop back with EventQueue
main.cpp@0:d31fd55babb2, 2019-04-13 (annotated)
- Committer:
- JohnnyK
- Date:
- Sat Apr 13 19:39:14 2019 +0000
- Revision:
- 0:d31fd55babb2
Release
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
JohnnyK | 0:d31fd55babb2 | 1 | #include "mbed.h" |
JohnnyK | 0:d31fd55babb2 | 2 | |
JohnnyK | 0:d31fd55babb2 | 3 | DigitalOut led1(LED1); |
JohnnyK | 0:d31fd55babb2 | 4 | DigitalOut led2(LED2); |
JohnnyK | 0:d31fd55babb2 | 5 | DigitalOut led3(LED3); |
JohnnyK | 0:d31fd55babb2 | 6 | CAN can2(PB_8, PB_9); |
JohnnyK | 0:d31fd55babb2 | 7 | CAN can1(PB_12, PB_13); |
JohnnyK | 0:d31fd55babb2 | 8 | EventQueue queue(32 * EVENTS_EVENT_SIZE); |
JohnnyK | 0:d31fd55babb2 | 9 | Thread t; |
JohnnyK | 0:d31fd55babb2 | 10 | |
JohnnyK | 0:d31fd55babb2 | 11 | char counter = 0; |
JohnnyK | 0:d31fd55babb2 | 12 | |
JohnnyK | 0:d31fd55babb2 | 13 | void send() { |
JohnnyK | 0:d31fd55babb2 | 14 | printf("send()\n"); |
JohnnyK | 0:d31fd55babb2 | 15 | if(can1.write(CANMessage(1337, &counter, 1))) { |
JohnnyK | 0:d31fd55babb2 | 16 | counter++; |
JohnnyK | 0:d31fd55babb2 | 17 | printf("Message sent: %d\n", counter); |
JohnnyK | 0:d31fd55babb2 | 18 | led3 = !led3; |
JohnnyK | 0:d31fd55babb2 | 19 | } |
JohnnyK | 0:d31fd55babb2 | 20 | } |
JohnnyK | 0:d31fd55babb2 | 21 | |
JohnnyK | 0:d31fd55babb2 | 22 | int main() { |
JohnnyK | 0:d31fd55babb2 | 23 | |
JohnnyK | 0:d31fd55babb2 | 24 | t.start(callback(&queue, &EventQueue::dispatch_forever)); |
JohnnyK | 0:d31fd55babb2 | 25 | queue.call_every(1000, send); |
JohnnyK | 0:d31fd55babb2 | 26 | |
JohnnyK | 0:d31fd55babb2 | 27 | CANMessage msg; |
JohnnyK | 0:d31fd55babb2 | 28 | while(1) { |
JohnnyK | 0:d31fd55babb2 | 29 | if(can2.read(msg)) { |
JohnnyK | 0:d31fd55babb2 | 30 | printf("Message received: %d\n", msg.data[0]); |
JohnnyK | 0:d31fd55babb2 | 31 | led2 = !led2; |
JohnnyK | 0:d31fd55babb2 | 32 | } |
JohnnyK | 0:d31fd55babb2 | 33 | wait(0.2); |
JohnnyK | 0:d31fd55babb2 | 34 | led1 = !led1; |
JohnnyK | 0:d31fd55babb2 | 35 | } |
JohnnyK | 0:d31fd55babb2 | 36 | |
JohnnyK | 0:d31fd55babb2 | 37 | } |