-
Notifications
You must be signed in to change notification settings - Fork 0
/
Teensy_MC_code.ino
86 lines (79 loc) · 1.9 KB
/
Teensy_MC_code.ino
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include <FlexCAN_T4.h>
FlexCAN_T4<CAN1, RX_SIZE_256, TX_SIZE_16> can1;
CAN_message_t msg;
void setup(void) {
Serial.begin(115200);
Serial.println("Hello World");
delay(400);
pinMode(6, OUTPUT); digitalWrite(6, LOW); /* optional tranceiver enable pin */
can1.begin();
can1.setBaudRate(500000);
can1.setMaxMB(16);
can1.enableFIFO();
can1.enableFIFOInterrupt();
can1.onReceive(canSniff);
can1.mailboxStatus();
delay(2000);
sendtoMC();
}
void canSniff(const CAN_message_t &msg) {
Serial.print("MB "); Serial.print(msg.mb);
Serial.print(" OVERRUN: "); Serial.print(msg.flags.overrun);
Serial.print(" LEN: "); Serial.print(msg.len);
Serial.print(" EXT: "); Serial.print(msg.flags.extended);
Serial.print(" TS: "); Serial.print(msg.timestamp);
Serial.print(" ID: "); Serial.print(msg.id, HEX);
Serial.print(" Buffer: ");
for ( uint8_t i = 0; i < msg.len; i++ ) {
Serial.print(msg.buf[i], HEX); Serial.print(" ");
} Serial.println();
}
void loop() {
can1.events();
delay(100);
}
void sendtoMC()
{
msg.id = 0x210 ;
msg.len = 3;
msg.buf[0] = 0x3D;
msg.buf[1] = 0x30;
msg.buf[2] = 0x64;
can1.write(msg);
delay(100);
msg.buf[0] = 0x3D;
msg.buf[1] = 0xCE;
msg.buf[2] = 0x64;
can1.write(msg);
delay(100);
msg.buf[0] = 0x3D;
msg.buf[1] = 0xA3;
msg.buf[2] = 0x64;
can1.write(msg);
delay(100);
msg.buf[0] = 0x3D;
msg.buf[1] = 0x4f;
msg.buf[2] = 0x64;
can1.write(msg);
delay(100);
msg.buf[0] = 0x3D;
msg.buf[1] = 0xa5;
msg.buf[2] = 0x64;
can1.write(msg);
delay(100);
msg.buf[0] = 0x3D;
msg.buf[1] = 0x62;
msg.buf[2] = 0x64;
can1.write(msg);
delay(100);
msg.buf[0] = 0x3D;
msg.buf[1] = 0x4e;
msg.buf[2] = 0x64;
can1.write(msg);
delay(100);
msg.buf[0] = 0x3D;
msg.buf[1] = 0x59;
msg.buf[2] = 0x64;
can1.write(msg);
delay(100);
}