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 <stdint.h>
|
||||
#include <stdio.h>
|
#include <stdio.h>
|
||||
|
|
||||
|
#include "libiflytop_micro\stm32\basic\iflytop_micro_os.hpp"
|
||||
|
namespace iflytop { |
||||
void port_do_debug_light_state(); |
void port_do_debug_light_state(); |
||||
void port_delay_us(uint32_t us); |
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); |
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