Just a regular publish

Dependencies:   mbed imu_driver

Committer:
open4416
Date:
Mon Jun 18 06:50:24 2018 +0000
Revision:
1:8a9ac822aab7
Parent:
0:c4747ebbe0b4
Child:
2:c7a3a8c1aeed
Add auxiliary control to cooling system

Who changed what in which revision?

UserRevisionLine numberNew contents of line
open4416 0:c4747ebbe0b4 1 #include "mbed.h"
open4416 0:c4747ebbe0b4 2
open4416 1:8a9ac822aab7 3 DigitalOut Cool(PA_15,0);
open4416 1:8a9ac822aab7 4 //DigitalOut Led(D13,0);
open4416 1:8a9ac822aab7 5 CAN can1(PA_11, PA_12, 1000000); //(Inverter, PadalBox, DashBoard) 1Mbps, contain critical torque command message
open4416 1:8a9ac822aab7 6 CAN can2(PB_5, PB_13, 500000); //(BMS1, BMS2) 500kbps, contain battery status
open4416 1:8a9ac822aab7 7 Serial pc(USBTX, USBRX, 115200);
open4416 0:c4747ebbe0b4 8
open4416 0:c4747ebbe0b4 9 CANMessage can_msg_1;
open4416 0:c4747ebbe0b4 10 CANMessage can_msg_2;
open4416 0:c4747ebbe0b4 11
open4416 0:c4747ebbe0b4 12 uint8_t CAN_flag_1 = 0;
open4416 0:c4747ebbe0b4 13 uint8_t CAN_flag_2 = 0;
open4416 1:8a9ac822aab7 14 uint8_t RTD_State = 0; // use as bool
open4416 0:c4747ebbe0b4 15
open4416 1:8a9ac822aab7 16 void CAN_RX1(void);
open4416 1:8a9ac822aab7 17 void CAN_RX2(void);
open4416 0:c4747ebbe0b4 18
open4416 0:c4747ebbe0b4 19 int main()
open4416 0:c4747ebbe0b4 20 {
open4416 0:c4747ebbe0b4 21 CAN_flag_1 = 0;
open4416 0:c4747ebbe0b4 22 CAN_flag_2 = 0;
open4416 1:8a9ac822aab7 23
open4416 1:8a9ac822aab7 24 can1.attach(&CAN_RX1, CAN::RxIrq); //CAN1 Recieve Irq
open4416 1:8a9ac822aab7 25 can2.attach(&CAN_RX2, CAN::RxIrq); //CAN2 Recieve Irq
open4416 0:c4747ebbe0b4 26
open4416 0:c4747ebbe0b4 27 while(1) {
open4416 1:8a9ac822aab7 28 if(CAN_flag_1) {
open4416 1:8a9ac822aab7 29 // Led = RTD_State;
open4416 1:8a9ac822aab7 30 Cool = RTD_State;
open4416 1:8a9ac822aab7 31 pc.printf("%d\r", RTD_State);
open4416 0:c4747ebbe0b4 32 CAN_flag_1 = 0;
open4416 0:c4747ebbe0b4 33 }
open4416 0:c4747ebbe0b4 34 }
open4416 0:c4747ebbe0b4 35 }
open4416 0:c4747ebbe0b4 36
open4416 1:8a9ac822aab7 37 void CAN_RX1(void)
open4416 0:c4747ebbe0b4 38 {
open4416 0:c4747ebbe0b4 39 if(can1.read(can_msg_1)) {
open4416 1:8a9ac822aab7 40 switch(can_msg_1.id) { //Filtered the input message and do corresponding action
open4416 1:8a9ac822aab7 41 case 0xAA:
open4416 1:8a9ac822aab7 42 //Internal state address
open4416 1:8a9ac822aab7 43 RTD_State = can_msg_1.data[6] & 0x01; //get bit "0", result ( 1 = RTD, 0 = OFF )
open4416 1:8a9ac822aab7 44 CAN_flag_1 = 1;
open4416 1:8a9ac822aab7 45 break;
open4416 1:8a9ac822aab7 46 }
open4416 0:c4747ebbe0b4 47 }
open4416 0:c4747ebbe0b4 48 }
open4416 1:8a9ac822aab7 49
open4416 1:8a9ac822aab7 50 void CAN_RX2(void)
open4416 0:c4747ebbe0b4 51 {
open4416 0:c4747ebbe0b4 52 if(can2.read(can_msg_2)) {
open4416 0:c4747ebbe0b4 53 }
open4416 0:c4747ebbe0b4 54 }