You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

86 lines
2.8 KiB

#include "main.hpp"
#include <stddef.h>
#include <stdio.h>
#include "main.h"
#include "project.hpp"
//
#include "sdk/hal/zhal.hpp"
#include "sdk\components\tmc\ic\ztmc4361A.hpp"
#define TAG "main"
namespace iflytop {
Main gmain;
};
using namespace iflytop;
void Main::run() {
iflytop_no_os_cfg_t oscfg = {
.delayhtim = &DELAY_US_TIMER,
.debuguart = &DEBUG_UART,
};
iflytop_no_os_init(&oscfg);
ZLOGI(TAG, "robotic_core_xy:%s", VERSION);
DEBUG_LIGHT_GPIO.initAsOutput(true);
ZHAL_CORE_REG(200, { DEBUG_LIGHT_GPIO.toggleState(); });
// while (true) {
// chip_delay_us(1000 * 1000);
// ZLOGI(TAG, ".....");
// }
TMC4361A motora;
TMC4361A motorb;
TMC_MOTOR1_SPI_SELECT1_IO.initAsOutput(true);
TMC_MOTOR1_nFREEZE_IO.initAsOutput(true);
TMC_MOTOR1_nRESET_IO.initAsOutput(true);
TMC_MOTOR1_SUB_IC_ENN_IO.initAsOutput(true);
TMC_MOTOR2_SPI_SELECT1_IO.initAsOutput(true);
TMC_MOTOR2_nFREEZE_IO.initAsOutput(true);
TMC_MOTOR2_nRESET_IO.initAsOutput(true);
TMC_MOTOR2_SUB_IC_ENN_IO.initAsOutput(true);
{
TMC4361A::cfg_t motora_cfg = {.spi = &TMC_MOTOR_SPI,
.csgpio = &TMC_MOTOR1_SPI_SELECT1_IO,
.resetPin = &TMC_MOTOR1_nRESET_IO,
.fREEZEPin = &TMC_MOTOR1_nFREEZE_IO,
.ennPin = NULL,
.driverIC_ennPin = &TMC_MOTOR1_SUB_IC_ENN_IO,
.driverIC_resetPin = NULL};
motora.initialize(&motora_cfg);
int32_t ic4361Version = motora.readICVersion();
int32_t ic2160Version = motora.readSubICVersion();
ZLOGI(TAG, "motora:TMC4361Version:%lx TMC2160VERSION:%lx", ic4361Version, ic2160Version);
}
{
TMC4361A::cfg_t motorb_cfg = {.spi = &TMC_MOTOR_SPI,
.csgpio = &TMC_MOTOR2_SPI_SELECT1_IO,
.resetPin = &TMC_MOTOR2_nRESET_IO,
.fREEZEPin = &TMC_MOTOR2_nFREEZE_IO,
.ennPin = NULL,
.driverIC_ennPin = &TMC_MOTOR2_SUB_IC_ENN_IO,
.driverIC_resetPin = NULL};
motorb.initialize(&motorb_cfg);
int32_t ic4361Version = motorb.readICVersion();
int32_t ic2160Version = motorb.readSubICVersion();
ZLOGI(TAG, "motorb:TMC4361Version:%lx TMC2160VERSION:%lx", ic4361Version, ic2160Version);
}
motora.setIHOLD_IRUN(1, 12, 0); // 小臂
motora.setMotorShaft(0);
motorb.setIHOLD_IRUN(1, 12, 0); // 小臂
motorb.setMotorShaft(0);
motora.rotate(1200000);
motorb.rotate(1200000);
while (1) {
ZHALCORE::getInstance()->loop();
}
}