#pragma once #include "Arduino.h" #include #include #include #include #include "flash.h" extern STM32_CAN Can; extern SPIClass spi; extern MagneticSensorAS5045 encoder; extern BLDCMotor motor; extern DRV8313Driver driver; extern LowsideCurrentSense current_sense; extern Commander command; struct MotorControlInputs { float target_angle = 0.0; float target_velocity = 0.0; bool motor_enabled = false; bool foc_state = false; }; extern MotorControlInputs motor_control_inputs; void doMotor(char *cmd); void setup_foc(MagneticSensorAS5045 *encoder, BLDCMotor *motor, DRV8313Driver *driver, LowsideCurrentSense *current_sense, FLASH_RECORD* pid_data); void foc_step(BLDCMotor *motor);