Upload files to "/"
This commit is contained in:
51
can_handler.h
Normal file
51
can_handler.h
Normal file
@@ -0,0 +1,51 @@
|
||||
// can_handler.h - CAN FD Handler for MCP2518FD
|
||||
|
||||
#ifndef CAN_HANDLER_H
|
||||
#define CAN_HANDLER_H
|
||||
|
||||
#include <Arduino.h>
|
||||
#include <ACAN2517FD.h>
|
||||
#include <SPI.h>
|
||||
|
||||
#include "config.h"
|
||||
#include "types.h"
|
||||
|
||||
// CAN Controller instance
|
||||
extern ACAN2517FD canController;
|
||||
|
||||
// CAN status flags
|
||||
extern volatile bool canInitialized;
|
||||
extern volatile uint32_t canRxCount;
|
||||
extern volatile uint32_t canTxCount;
|
||||
extern volatile uint32_t canErrorCount;
|
||||
extern volatile uint32_t canOverflowCount;
|
||||
|
||||
// Initialize CAN FD controller
|
||||
bool initCAN();
|
||||
|
||||
// Set CAN mode (0=Normal, 1=ListenOnly, 2=Loopback, 3=ListenOnlyLoopback)
|
||||
bool setCANMode(uint8_t mode);
|
||||
|
||||
// Get current CAN mode
|
||||
uint8_t getCANMode();
|
||||
|
||||
// CAN RX Task (runs on Core 0)
|
||||
void canRxTask(void *pvParameters);
|
||||
|
||||
// CAN TX Task (runs on Core 0)
|
||||
void canTxTask(void *pvParameters);
|
||||
|
||||
// Send CAN frame
|
||||
bool sendCANFrame(uint32_t id, uint8_t* data, uint8_t len, bool isFD = true);
|
||||
|
||||
// Set CAN baudrates
|
||||
bool setCANBaudrate(uint32_t arbitrationBaud, uint32_t dataBaud);
|
||||
|
||||
bool setCANBaudrateAndMode(uint32_t arbitrationBaud, uint32_t dataBaud, uint8_t mode, bool enableFD = true);
|
||||
|
||||
void getCANStats(uint32_t& rx, uint32_t& tx, uint32_t& errors);
|
||||
|
||||
// Interrupt service routine (forward declaration)
|
||||
void IRAM_ATTR onCANInterrupt();
|
||||
|
||||
#endif // CAN_HANDLER_H
|
||||
Reference in New Issue
Block a user