Formula Student Electronics & Software
The code for the embedded software
Loading...
Searching...
No Matches
main.cpp File Reference
#include <Adafruit_MCP3008.h>
#include <FlexCAN_T4.h>
#include <Wire.h>
#include <elapsedMillis.h>
#include <iostream>
Include dependency graph for main.cpp:

Go to the source code of this file.

Macros

#define Reference   2.5
 
#define ERROR_TIME   900
 
#define N_ADCs   8
 
#define N_ADC_CHANNELS   8
 
#define BROADCAST_ID   0x301
 

Functions

double ADCconversion (int raw)
 
void readRawADCData ()
 
void broadcastRawData ()
 
void CAN_msg ()
 
void sendTempsToBMS ()
 
void canbusSniffer (const CAN_message_t &msg)
 
void setup ()
 
void printTemp ()
 
void loop ()
 

Variables

FlexCAN_T4< CAN1, RX_SIZE_256, TX_SIZE_16 > can1
 
Adafruit_MCP3008 ADCs [8]
 
elapsedMicros tempErrorTimer
 
bool flagErrorTimerOn = 0
 
CAN_message_t BMSInfoMsg
 
CAN_message_t BMSErrorFlag
 
CAN_message_t tempBroadcast
 
CAN_message_t msg_1
 
int broadcastIndex = 0
 
int broadcastEnabled = 0
 
int count = 0
 
float read = 0
 
double voltage = 0
 
double voltage1 = 0
 
double voltage2 = 0
 
double voltage3 = 0
 
double voltage4 = 0
 
double temperature = 0.0
 
float maxTemp = 0.0
 
float minTemp = 60.0
 
float tempSum = 0.0
 
float avgTemp = 0.0
 
volatile bool BMSErr = 0
 
volatile bool tempErr = 0
 
int ADCRaw [8][8]
 
float Temps [8][8]
 

Macro Definition Documentation

◆ BROADCAST_ID

#define BROADCAST_ID   0x301

Definition at line 19 of file main.cpp.

◆ ERROR_TIME

#define ERROR_TIME   900

Definition at line 12 of file main.cpp.

◆ N_ADC_CHANNELS

#define N_ADC_CHANNELS   8

Definition at line 15 of file main.cpp.

◆ N_ADCs

#define N_ADCs   8

Definition at line 14 of file main.cpp.

◆ Reference

#define Reference   2.5

Definition at line 11 of file main.cpp.

Function Documentation

◆ ADCconversion()

double ADCconversion ( int  raw)

Definition at line 72 of file main.cpp.

Here is the caller graph for this function:

◆ broadcastRawData()

void broadcastRawData ( )

Definition at line 109 of file main.cpp.

◆ CAN_msg()

void CAN_msg ( )

Definition at line 119 of file main.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ canbusSniffer()

void canbusSniffer ( const CAN_message_t &  msg)

Definition at line 244 of file main.cpp.

◆ loop()

void loop ( )

Definition at line 292 of file main.cpp.

Here is the call graph for this function:

◆ printTemp()

void printTemp ( )

Definition at line 282 of file main.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ readRawADCData()

void readRawADCData ( )

Definition at line 83 of file main.cpp.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ sendTempsToBMS()

void sendTempsToBMS ( )

Definition at line 211 of file main.cpp.

Here is the caller graph for this function:

◆ setup()

void setup ( )

Definition at line 253 of file main.cpp.

Here is the call graph for this function:

Variable Documentation

◆ ADCRaw

int ADCRaw[8][8]
Initial value:
= {
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0}}

Definition at line 52 of file main.cpp.

◆ ADCs

Adafruit_MCP3008 ADCs[8]

Definition at line 9 of file main.cpp.

◆ avgTemp

float avgTemp = 0.0

Definition at line 47 of file main.cpp.

◆ BMSErr

volatile bool BMSErr = 0

Definition at line 49 of file main.cpp.

◆ BMSErrorFlag

CAN_message_t BMSErrorFlag

Definition at line 26 of file main.cpp.

◆ BMSInfoMsg

CAN_message_t BMSInfoMsg

Definition at line 25 of file main.cpp.

◆ broadcastEnabled

int broadcastEnabled = 0

Definition at line 34 of file main.cpp.

◆ broadcastIndex

int broadcastIndex = 0

Definition at line 33 of file main.cpp.

◆ can1

FlexCAN_T4<CAN1, RX_SIZE_256, TX_SIZE_16> can1

Write CSV fields feature example.

Definition at line 7 of file main.cpp.

◆ count

int count = 0

Definition at line 35 of file main.cpp.

◆ flagErrorTimerOn

bool flagErrorTimerOn = 0

Definition at line 23 of file main.cpp.

◆ maxTemp

float maxTemp = 0.0

Definition at line 44 of file main.cpp.

◆ minTemp

float minTemp = 60.0

Definition at line 45 of file main.cpp.

◆ msg_1

CAN_message_t msg_1

Definition at line 28 of file main.cpp.

◆ read

float read = 0

Definition at line 37 of file main.cpp.

◆ tempBroadcast

CAN_message_t tempBroadcast

Definition at line 27 of file main.cpp.

◆ temperature

double temperature = 0.0

Definition at line 43 of file main.cpp.

◆ tempErr

volatile bool tempErr = 0

Definition at line 50 of file main.cpp.

◆ tempErrorTimer

elapsedMicros tempErrorTimer

Definition at line 21 of file main.cpp.

◆ Temps

float Temps[8][8]
Initial value:
= {
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0}}

Definition at line 62 of file main.cpp.

◆ tempSum

float tempSum = 0.0

Definition at line 46 of file main.cpp.

◆ voltage

double voltage = 0

Definition at line 38 of file main.cpp.

◆ voltage1

double voltage1 = 0

Definition at line 39 of file main.cpp.

◆ voltage2

double voltage2 = 0

Definition at line 40 of file main.cpp.

◆ voltage3

double voltage3 = 0

Definition at line 41 of file main.cpp.

◆ voltage4

double voltage4 = 0

Definition at line 42 of file main.cpp.