Add setup for angle using SimpleFOC

This commit is contained in:
lulko 2025-04-17 14:30:22 +03:00
parent 9c9b182705
commit 317a4c48ea
2 changed files with 11 additions and 10 deletions

View file

@ -139,6 +139,7 @@ void send_can_with_id_crc(uint32_t id, uint8_t message_type, const void* data, s
// Отправка // Отправка
Can.write(msg); Can.write(msg);
__NOP();
} }
@ -215,17 +216,13 @@ void send_motor_torque() {
void setup_id(uint8_t my_id) { void setup_id(uint8_t my_id) {
write_param(addr_id,my_id); write_param(addr_id,my_id);
send_id(); // send_id();
} }
void setup_angle(int target_angle_rad) {
float target_angle = target_angle_rad / 100.0f; // Предполагаем, что передается в значениях сотых градуса или сотые радианы
void send_data() { motor.controller = MotionControlType::angle;
// send_velocity(); motor.move(target_angle);
// send_angle();
// send_motor_enabled();
// read_temperature();
// GPIOC->ODR ^= GPIO_ODR_OD11;
} }
void listen_can(const CAN_message_t &msg) { void listen_can(const CAN_message_t &msg) {
@ -275,6 +272,10 @@ void listen_can(const CAN_message_t &msg) {
} }
break; break;
case MOTOR_ANGLE:
setup_angle(msg.buf[1]);
break;
case MOTOR_ENABLED: case MOTOR_ENABLED:
if (msg.buf[1] == 1) { if (msg.buf[1] == 1) {
motor.enable(); motor.enable();

View file

@ -75,7 +75,7 @@ send_can_message(bus, (OLD_DEVICE_ID << 4) | REG_WRITE, packet_write)
time.sleep(0.5) time.sleep(0.5)
# ======= 2. Запрашиваем текущий ID (используем новй адрес) ======= # ======= 2. Запрашиваем текущий ID (используем новы й адрес) =======
# Теперь для запроса используем **уже новый id** # Теперь для запроса используем **уже новый id**
NEW_WITH_REG = (NEW_DEVICE_ID << 4) | REG_READ NEW_WITH_REG = (NEW_DEVICE_ID << 4) | REG_READ