Fix cpp file

This commit is contained in:
Valentin Dabstep 2025-05-26 22:40:53 +03:00
parent d2d8f89eb3
commit d654443621
4 changed files with 12 additions and 14 deletions

View file

@ -18,6 +18,7 @@ void send_motor_enabled();
void send_motor_enabled();
void send_id();
void firmware_update();
void send_pid_angle(uint8_t param_pid);
// void send_motor_torque();
void send_pid(uint8_t param_pid);
void setup_id(uint8_t my_id);

View file

@ -23,9 +23,7 @@ build_flags =
-DSTM32F446xx
-D HAL_CAN_MODULE_ENABLED
-D SIMPLEFOC_PWM_LOWSIDE_ACTIVE_HIGH
-Wl,-T"${platformio.packages_dir}/framework-arduinoststm32/variants/STM32F4xx/F446R(C-E)T/ldscript.ld"
-Wl,--defsym=LD_FLASH_OFFSET=0x8000
-DAPP_OFFSET=0x8000
lib_deps =
askuric/Simple FOC@^2.3.4
pazi88/STM32_CAN@^1.1.2

View file

@ -63,7 +63,7 @@ volatile uint32_t ipsr_value = 0;
void setup(){
// Vector table initialization (commented out)
SCB->VTOR = (uint32_t)0x08008004;
// SCB->VTOR = (uint32_t)0x08008004;
Serial.setRx(HARDWARE_SERIAL_RX_PIN);
Serial.setTx(HARDWARE_SERIAL_TX_PIN);
@ -92,7 +92,7 @@ volatile uint32_t ipsr_value = 0;
// HAL_NVIC_EnableIRQ(CAN2_RX0_IRQn);
// Default motor configuration
GPIOC->ODR |= GPIO_ODR_OD11;
GPIOC->ODR |= GPIO_ODR_OD11; //set LED
motor.torque_controller = TorqueControlType::foc_current;
motor.controller = MotionControlType::torque;
__enable_irq();
@ -106,8 +106,8 @@ void loop() {
__enable_irq();
foc_step(&motor, &command);
CAN_message_t msg;
GPIOC->ODR ^= GPIO_ODR_OD11; // Toggle status LED
delay(500);
// GPIOC->ODR ^= GPIO_ODR_OD11; // Toggle status LED
// delay(500);
// // Process incoming CAN messages
while (Can.read(msg)) {

View file

@ -62,9 +62,9 @@ void send_motor_enabled() {
// Error handling: logging, alerts, etc.
return;
}
uint8_t value = flash_rec[foc_id].value;
uint8_t value = motor_control_inputs.motor_enabled; //copy current motor state
uint8_t id = flash_rec[addr_id].value;
send_can_with_id_crc(id,'F',&value);
send_can_with_id_crc(id,'M',&value);
}
void send_id() {
@ -90,7 +90,7 @@ void send_id() {
// Can.write(CAN_TX_msg);
// }
void send_pid(uint8_t param_pid){
void send_pid_angle(uint8_t param_pid){
if (flash_rec == nullptr) { // Null check
return;
}
@ -148,7 +148,6 @@ void setup_pid_angle(uint8_t param_pid, float data){
}
void listen_can(const CAN_message_t &msg) {
msg_id = msg.id;
msg_ch = msg_id & 0xF; // Extract message channel
@ -235,9 +234,9 @@ void listen_can(const CAN_message_t &msg) {
case MOTOR_ENABLED: send_motor_enabled(); break;
// case MOTOR_TORQUE: send_motor_torque(); break;
// case FOC_STATE: send_foc_state(); break;
case REG_MOTOR_POSPID_Kp: send_pid(pid_p); break;
case REG_MOTOR_POSPID_Ki: send_pid(pid_i); break;
case REG_MOTOR_POSPID_Kd: send_pid(pid_d); break;
case REG_MOTOR_POSPID_Kp: send_pid_angle(pid_p); break;
case REG_MOTOR_POSPID_Ki: send_pid_angle(pid_i); break;
case REG_MOTOR_POSPID_Kd: send_pid_angle(pid_d); break;
default: break;
}
}