31 lines
765 B
C
31 lines
765 B
C
#pragma once
|
|
#include "Arduino.h"
|
|
#include <AS5045.h>
|
|
#include <DRV8313.h>
|
|
#include <SimpleFOC.h>
|
|
#include <STM32_CAN.h>
|
|
#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);
|