SHENG-HEN HSIEH
/
VDU_2021
Just a regular publish
main.cpp@0:c4747ebbe0b4, 2018-05-26 (annotated)
- Committer:
- open4416
- Date:
- Sat May 26 16:03:33 2018 +0000
- Revision:
- 0:c4747ebbe0b4
- Child:
- 1:8a9ac822aab7
j
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
open4416 | 0:c4747ebbe0b4 | 1 | #include "mbed.h" |
open4416 | 0:c4747ebbe0b4 | 2 | |
open4416 | 0:c4747ebbe0b4 | 3 | Ticker ticker; |
open4416 | 0:c4747ebbe0b4 | 4 | CAN can1(PB_5, PB_13, 1000000); |
open4416 | 0:c4747ebbe0b4 | 5 | CAN can2(PA_11, PA_12, 1000000); |
open4416 | 0:c4747ebbe0b4 | 6 | |
open4416 | 0:c4747ebbe0b4 | 7 | CANMessage can_msg_1; |
open4416 | 0:c4747ebbe0b4 | 8 | CANMessage can_msg_2; |
open4416 | 0:c4747ebbe0b4 | 9 | |
open4416 | 0:c4747ebbe0b4 | 10 | uint8_t CAN_flag_1 = 0; |
open4416 | 0:c4747ebbe0b4 | 11 | uint8_t CAN_flag_2 = 0; |
open4416 | 0:c4747ebbe0b4 | 12 | |
open4416 | 0:c4747ebbe0b4 | 13 | void CAN1_RX(void); |
open4416 | 0:c4747ebbe0b4 | 14 | void CAN2_RX(void); |
open4416 | 0:c4747ebbe0b4 | 15 | |
open4416 | 0:c4747ebbe0b4 | 16 | int main() |
open4416 | 0:c4747ebbe0b4 | 17 | { |
open4416 | 0:c4747ebbe0b4 | 18 | CAN_flag_1 = 0; |
open4416 | 0:c4747ebbe0b4 | 19 | CAN_flag_2 = 0; |
open4416 | 0:c4747ebbe0b4 | 20 | |
open4416 | 0:c4747ebbe0b4 | 21 | can1.attach(&CAN1_RX, CAN::RxIrq); //CAN1 Recieve Irq |
open4416 | 0:c4747ebbe0b4 | 22 | can2.attach(&CAN2_RX, CAN::RxIrq); //CAN2 Recieve Irq |
open4416 | 0:c4747ebbe0b4 | 23 | |
open4416 | 0:c4747ebbe0b4 | 24 | while(1) { |
open4416 | 0:c4747ebbe0b4 | 25 | while(CAN_flag_1 == 1) { |
open4416 | 0:c4747ebbe0b4 | 26 | can2.write(can_msg_1); |
open4416 | 0:c4747ebbe0b4 | 27 | CAN_flag_1 = 0; |
open4416 | 0:c4747ebbe0b4 | 28 | } |
open4416 | 0:c4747ebbe0b4 | 29 | while(CAN_flag_2 == 1) { |
open4416 | 0:c4747ebbe0b4 | 30 | can1.write(can_msg_2); |
open4416 | 0:c4747ebbe0b4 | 31 | CAN_flag_2 = 0; |
open4416 | 0:c4747ebbe0b4 | 32 | } |
open4416 | 0:c4747ebbe0b4 | 33 | } |
open4416 | 0:c4747ebbe0b4 | 34 | } |
open4416 | 0:c4747ebbe0b4 | 35 | |
open4416 | 0:c4747ebbe0b4 | 36 | void CAN1_RX(void) |
open4416 | 0:c4747ebbe0b4 | 37 | { |
open4416 | 0:c4747ebbe0b4 | 38 | if(can1.read(can_msg_1)) { |
open4416 | 0:c4747ebbe0b4 | 39 | CAN_flag_1 = 1; |
open4416 | 0:c4747ebbe0b4 | 40 | } |
open4416 | 0:c4747ebbe0b4 | 41 | } |
open4416 | 0:c4747ebbe0b4 | 42 | void CAN2_RX(void) |
open4416 | 0:c4747ebbe0b4 | 43 | { |
open4416 | 0:c4747ebbe0b4 | 44 | if(can2.read(can_msg_2)) { |
open4416 | 0:c4747ebbe0b4 | 45 | CAN_flag_2 = 1; |
open4416 | 0:c4747ebbe0b4 | 46 | } |
open4416 | 0:c4747ebbe0b4 | 47 | } |