32 lines
804 B
C
32 lines
804 B
C
|
#pragma once
|
||
|
#include "Arduino.h"
|
||
|
#include <AS5045.h>
|
||
|
#include <DRV8313.h>
|
||
|
#include <SimpleFOC.h>
|
||
|
#include <STM32_CAN.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,
|
||
|
Commander *commander, CommandCallback callback);
|
||
|
|
||
|
void foc_step(BLDCMotor *motor, Commander *commander);
|