Files
NeoECU-Firmware/STM32/CM7/Core/Inc/global_state.h
Hector van der Aa 42e64b673c Initial sync implementation
Implemented system sync with crank and cam state and simple error
handling
2026-06-03 10:56:28 +02:00

30 lines
727 B
C

// Copyright (C) 2026 Pierre Barbier <pierrebarbier741@gmail.com>
// Copyright (C) 2026 Association Exergie <association.exergie@gmail.com>
// SPDX-License-Identifier: GPL-3.0-or-later
#include <ring_buffer.h>
#include <stdint.h>
#define MAX_CAM_MISS 2
typedef enum { SYNC_OK = 0, SYNC_PENDING = 1, SYNC_NOT_OK = 2 } sync_state_t;
typedef enum {
CYCLE_COMBUSTION = 0,
CYCLE_EXHAUST = 1,
CYCLE_INTAKE = 2,
CYCLE_COMPRESSION = 3,
CYCLE_UNKNOWN = 4
} crank_state_t;
typedef enum { CAM_IDLE = 0, CAM_TRIGD = 1 } cam_state_t;
typedef struct {
crank_state_t crank_state;
cam_state_t cam_state;
uint8_t cam_miss_ctr;
sync_state_t sync_state;
ring_buffer_t crank_RB;
ring_buffer_t cam_RB;
} global_state_t;