Count CAN frames read in one cycle
This commit is contained in:
parent
eaf86ff0ce
commit
d9e8cc5f52
@ -33,6 +33,10 @@ typedef struct {
|
||||
|
||||
extern canFrame framebuffer[CANFRAMEBUFFERSIZE];
|
||||
|
||||
extern uint32_t framebufferwritepointer;
|
||||
extern uint32_t framebufferreadpointer;
|
||||
extern uint32_t frames_read;
|
||||
|
||||
void HAL_FDCAN_RxFifo0Callback(FDCAN_HandleTypeDef* handle,
|
||||
uint32_t interrupt_flags);
|
||||
|
||||
|
@ -11,6 +11,7 @@
|
||||
|
||||
#include "stm32g4xx_hal_fdcan.h"
|
||||
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
|
||||
// 3 should be programmed with CAN id 2
|
||||
@ -19,8 +20,9 @@
|
||||
const uint16_t slave_CAN_id_to_slave_index[7] = {
|
||||
0, 1, 2, 3, 4, 5, 6}; // TODO: Make this pretty pls
|
||||
canFrame framebuffer[CANFRAMEBUFFERSIZE] = {0};
|
||||
uint32_t framebufferwritepointer;
|
||||
uint32_t framebufferreadpointer;
|
||||
uint32_t framebufferwritepointer = 0;
|
||||
uint32_t framebufferreadpointer = 0;
|
||||
uint32_t frames_read = 0;
|
||||
|
||||
void CAN_Init(FDCAN_HandleTypeDef* hcan) {
|
||||
HAL_FDCAN_Stop(hcan);
|
||||
@ -51,6 +53,7 @@ void CAN_Init(FDCAN_HandleTypeDef* hcan) {
|
||||
}
|
||||
|
||||
uint8_t CAN_Receive(FDCAN_HandleTypeDef* hcan) {
|
||||
frames_read = 0;
|
||||
while (framebufferreadpointer != framebufferwritepointer) {
|
||||
framebufferreadpointer++;
|
||||
|
||||
@ -59,6 +62,7 @@ uint8_t CAN_Receive(FDCAN_HandleTypeDef* hcan) {
|
||||
}
|
||||
|
||||
canFrame rxFrame = framebuffer[framebufferreadpointer];
|
||||
frames_read++;
|
||||
|
||||
if ((rxFrame.FrameID & SLAVE_STATUS_BASE_ADDRESS) ==
|
||||
SLAVE_STATUS_BASE_ADDRESS) {
|
||||
|
@ -61,11 +61,6 @@ extern FDCAN_HandleTypeDef hfdcan1;
|
||||
extern SPI_HandleTypeDef hspi1;
|
||||
/* USER CODE BEGIN EV */
|
||||
|
||||
|
||||
|
||||
extern uint8_t framebufferwritepointer;
|
||||
extern uint8_t framebufferreadpointer;
|
||||
|
||||
/* USER CODE END EV */
|
||||
|
||||
/******************************************************************************/
|
||||
|
Loading…
x
Reference in New Issue
Block a user