10 changed files with 259 additions and 151 deletions
-
3.vscode/settings.json
-
2app/Core/Src/can.c
-
113app/MDK-ARM/app.uvguix.h_zha
-
46app/MDK-ARM/app.uvoptx
-
10app/MDK-ARM/app.uvprojx
-
2dep/libiflytop_micro
-
13src/port.cpp
-
60src/port.hpp
-
8src/project_board.hpp
-
153src/umain.cpp
113
app/MDK-ARM/app.uvguix.h_zha
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -1 +1 @@ |
|||
Subproject commit bf17a8fb71483b29390173bc035f135b33b58c6a |
|||
Subproject commit 59c26e1dcba6743ee3ed302bb14a110526c50aaf |
@ -1,22 +1,64 @@ |
|||
#include <stdint.h>
|
|||
#include <stdio.h>
|
|||
|
|||
#include "libiflytop_micro\stm32\basic\iflytop_micro_os.hpp"
|
|||
namespace iflytop { |
|||
void port_do_debug_light_state(); |
|||
void port_delay_us(uint32_t us); |
|||
|
|||
/*******************************************************************************
|
|||
* tmc芯片驱动相关 * |
|||
* IflytopMicroOS对接 * |
|||
*******************************************************************************/ |
|||
void port_tmc_motor_spi_write_and_read(int channel, uint8_t* data, size_t length); |
|||
void port_tmc_extern_clk_enable(); |
|||
|
|||
void port_tmc_nFREEZE_pin_set_state(uint8_t channel, bool state); |
|||
void port_tmc_ENN_pin_set_state(uint8_t channel, bool state); |
|||
void port_tmc_nRESET_pin_set_state(uint8_t channel, bool state); |
|||
|
|||
int32_t port_tmc4361_get_version(uint8_t channel); |
|||
class IflytopMicroOSImpl : public IflytopMicroOS { |
|||
public: |
|||
virtual void sleepMS(int ms) { HAL_Delay(ms); }; |
|||
virtual uint32_t hasPassedMS(uint32_t ticket) { return sys_haspassedms(ticket); }; |
|||
virtual uint32_t getTicket() { return HAL_GetTick(); }; |
|||
virtual uint32_t getNowMS() { return HAL_GetTick(); }; |
|||
}; |
|||
|
|||
/*******************************************************************************
|
|||
* 帕尔贴驱动电路 * |
|||
*******************************************************************************/ |
|||
void port_peltier_set_pwm(int pwm); |
|||
/*******************************************************************************
|
|||
* tmc芯片驱动相关 * |
|||
*******************************************************************************/ |
|||
void port_tmc_motor_spi_write_and_read(int channel, uint8_t *data, size_t length); |
|||
void port_tmc_extern_clk_enable(); |
|||
void port_tmc_nFREEZE_pin_set_state(uint8_t channel, bool state); |
|||
void port_tmc_ENN_pin_set_state(uint8_t channel, bool state); |
|||
void port_tmc_nRESET_pin_set_state(uint8_t channel, bool state); |
|||
int32_t port_tmc4361_get_version(uint8_t channel); |
|||
/**
|
|||
* @brief 对接TMC4361和硬件的接口 |
|||
*/ |
|||
class TMC4361AImpl : public TMC4361A { |
|||
protected: |
|||
virtual void setResetPinState(bool state) { port_tmc_nRESET_pin_set_state(m_channel, state); }; |
|||
virtual void setFREEZEPinState(bool state) { port_tmc_nFREEZE_pin_set_state(m_channel, state); }; |
|||
virtual void setENNPinState(bool state) { port_tmc_ENN_pin_set_state(m_channel, state); }; |
|||
virtual bool getTargetReachedPinState() { return false; }; |
|||
virtual void sleepus(int32_t us) { port_delay_us(us); }; |
|||
virtual void readWriteArray(uint8_t *data, size_t length) { //
|
|||
port_tmc_motor_spi_write_and_read(m_channel, data, length); |
|||
}; |
|||
}; |
|||
/**
|
|||
* @brief 对接TMC2160和硬件的接口 |
|||
*/ |
|||
class TMC2160Impl : public TMC2160 { |
|||
TMC4361A *m_tmc4361; |
|||
|
|||
public: |
|||
void initialize(uint8_t channel, TMC4361A *tmc4361) { |
|||
m_tmc4361 = tmc4361; |
|||
TMC2160::initialize(channel); |
|||
} |
|||
|
|||
protected: |
|||
virtual void setENNPinState(bool state) { port_tmc_ENN_pin_set_state(m_channel, state); }; |
|||
virtual void sleepus(int32_t us) { port_delay_us(us); }; |
|||
virtual void readWriteArray(uint8_t *data, size_t length) { m_tmc4361->readWriteCover(data, length); }; |
|||
}; |
|||
} // namespace iflytop
|
Write
Preview
Loading…
Cancel
Save
Reference in new issue