PER Firmware
Loading...
Searching...
No Matches
can_common.h File Reference

Common functions and data structures used in every node in the CAN library. More...

#include <stdint.h>
#include "common/freertos/freertos.h"
#include "common/phal/can.h"

Go to the source code of this file.

Classes

struct  can_stats_t
 

Macros

#define DEFINE_CAN_TASKS()
 
#define START_CAN_TASKS()
 
#define CAN_TX_QUEUE_LENGTH   (32)
 
#define CAN_RX_QUEUE_LENGTH   (32)
 
#define NVIC_RX_IRQ_PRIO   (6)
 
#define NVIC_TX_IRQ_PRIO   (7)
 

Enumerations

enum  CAN_peripheral_t : uint8_t { CAN_PERIPHERAL1 = 0 , CAN_PERIPHERAL2 = 1 , CAN_NUM_PERIPHERALS = 2 , CAN_PERIPHERAL_INVALID = 0xFF }
 

Functions

void CAN_enqueue_tx (CanMsgTypeDef_t *msg)
 
void CAN_tx_update (void)
 
void CAN_rx_update (void)
 
bool CAN_init (void)
 
void CAN_enable_IRQs (void)
 
void CAN_rx_init (void)
 
void CAN_tx_init (void)
 

Variables

volatile can_stats_t can_stats
 
volatile uint32_t last_can_rx_time_ms
 
QueueHandle_t can_rx_queue
 
QueueHandle_t can_tx_queues [CAN_NUM_PERIPHERALS]
 

Detailed Description

Common functions and data structures used in every node in the CAN library.

Author
Irving Wang (irvin.nosp@m.gw@p.nosp@m.urdue.nosp@m..edu)

Macro Definition Documentation

◆ DEFINE_CAN_TASKS

#define DEFINE_CAN_TASKS ( )
Value:
DEFINE_TASK(CAN_rx_update, 0, osPriorityHigh, STACK_2048); \
DEFINE_TASK(CAN_tx_update, 0, osPriorityHigh, STACK_1024);
#define DEFINE_TASK(NAME, PERIOD_MS, PRIORITY, STACK_SIZE)
Scaffolds the static memory for a FreeRTOS task.
Definition freertos.h:62

◆ START_CAN_TASKS

#define START_CAN_TASKS ( )
Value:
START_TASK(CAN_rx_update); \
START_TASK(CAN_tx_update); \
CAN_enable_IRQs();
#define START_TASK(NAME)
Initializes and starts the defined task.
Definition freertos.h:87