Browse Source

update

master
zhaohe 2 years ago
parent
commit
9d1d571a86
  1. 42
      app/MDK-ARM/app.uvguix.h_zha
  2. 38
      app/MDK-ARM/app.uvoptx
  3. 13
      app/MDK-ARM/app.uvprojx
  4. 2
      dep/libiflytop_micro
  5. 153
      src/device_io_service.cpp
  6. 57
      src/device_io_service.hpp
  7. 28
      src/libtmcimpl.cpp
  8. 34
      src/libtmcimpl.hpp
  9. 64
      src/port.hpp
  10. 35
      src/umain.cpp

42
app/MDK-ARM/app.uvguix.h_zha
File diff suppressed because it is too large
View File

38
app/MDK-ARM/app.uvoptx

@ -913,8 +913,8 @@
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\src\port.cpp</PathWithFileName>
<FilenameWithoutPath>port.cpp</FilenameWithoutPath>
<PathWithFileName>..\..\src\umain.cpp</PathWithFileName>
<FilenameWithoutPath>umain.cpp</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
@ -925,8 +925,20 @@
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\src\umain.cpp</PathWithFileName>
<FilenameWithoutPath>umain.cpp</FilenameWithoutPath>
<PathWithFileName>..\..\src\device_io_service.cpp</PathWithFileName>
<FilenameWithoutPath>device_io_service.cpp</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
<File>
<GroupNumber>6</GroupNumber>
<FileNumber>41</FileNumber>
<FileType>8</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\src\libtmcimpl.cpp</PathWithFileName>
<FilenameWithoutPath>libtmcimpl.cpp</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
@ -940,7 +952,7 @@
<RteFlg>0</RteFlg>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>41</FileNumber>
<FileNumber>42</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -952,7 +964,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>42</FileNumber>
<FileNumber>43</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -964,7 +976,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>43</FileNumber>
<FileNumber>44</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -976,7 +988,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>44</FileNumber>
<FileNumber>45</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -988,7 +1000,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>45</FileNumber>
<FileNumber>46</FileNumber>
<FileType>8</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1000,7 +1012,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>46</FileNumber>
<FileNumber>47</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1012,7 +1024,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>47</FileNumber>
<FileNumber>48</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1024,7 +1036,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>48</FileNumber>
<FileNumber>49</FileNumber>
<FileType>8</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
@ -1036,7 +1048,7 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
<FileNumber>49</FileNumber>
<FileNumber>50</FileNumber>
<FileType>8</FileType>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>

13
app/MDK-ARM/app.uvprojx

@ -1211,14 +1211,19 @@
<GroupName>src</GroupName>
<Files>
<File>
<FileName>port.cpp</FileName>
<FileName>umain.cpp</FileName>
<FileType>8</FileType>
<FilePath>..\..\src\port.cpp</FilePath>
<FilePath>..\..\src\umain.cpp</FilePath>
</File>
<File>
<FileName>umain.cpp</FileName>
<FileName>device_io_service.cpp</FileName>
<FileType>8</FileType>
<FilePath>..\..\src\umain.cpp</FilePath>
<FilePath>..\..\src\device_io_service.cpp</FilePath>
</File>
<File>
<FileName>libtmcimpl.cpp</FileName>
<FileType>8</FileType>
<FilePath>..\..\src\libtmcimpl.cpp</FilePath>
</File>
</Files>
</Group>

2
dep/libiflytop_micro

@ -1 +1 @@
Subproject commit fb4426557e187f3f0ce98d8220a995f27f6258ad
Subproject commit bf2d8c1c5d3ab028b17d61e3dd6906231115bd82

153
src/port.cpp → src/device_io_service.cpp

@ -1,22 +1,5 @@
#include <stdint.h>
#include <stdio.h>
#include "device_io_service.hpp"
#include "libiflytop_micro/stm32/basic/basic.h"
#include "libtrinamic/src/ic/tmc2160.hpp"
#include "libtrinamic\src\ic\tmc4361A.hpp"
#include "main.h"
#include "project_board.hpp"
#include "spi.h"
#include "tim.h"
#include "usart.h"
/**
* @brief printf
*
* @param ch
* @param stream
* @return int
*/
extern "C" {
int fputc(int ch, FILE *stream) {
uint8_t c = ch;
@ -25,72 +8,23 @@ int fputc(int ch, FILE *stream) {
}
}
using namespace iflytop;
namespace iflytop {
void port_do_debug_light_state() {
static uint32_t lastprocess = 0;
if (sys_haspassedms(lastprocess) > 300) {
lastprocess = HAL_GetTick();
HAL_GPIO_TogglePin(DEBUG_LIGHT_PORT, DEBUG_LIGHT_PIN);
}
}
void port_delay_us(uint32_t us) { sys_delay_us(&DELAY_US_TIMER, us); }
void port_spi_cs_select(bool select) { //
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, select ? GPIO_PIN_SET : GPIO_PIN_RESET);
}
void port_tmc_motor_spi_write_and_read(int channel, uint8_t *data, size_t length) {
//
if (channel == MOTOR_1_TMC4361A_CHANNEL) {
port_spi_cs_select(false);
port_delay_us(1);
HAL_SPI_TransmitReceive(&hspi1, data, data, length, 1000);
port_spi_cs_select(true);
}
}
void port_tmc_nFREEZE_pin_set_state(uint8_t channel, bool state) {
if (channel == MOTOR_1_TMC4361A_CHANNEL) {
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_12, state ? GPIO_PIN_SET : GPIO_PIN_RESET);
}
}
void port_tmc_ENN_pin_set_state(uint8_t channel, bool state) {
if (channel == MOTOR_1_TMC2160_CHANNEL) {
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_11, state ? GPIO_PIN_SET : GPIO_PIN_RESET);
}
DeviceIoService deviceIoService;
}
void port_tmc_nRESET_pin_set_state(uint8_t channel, bool state) {}
void port_tmc_extern_clk_enable() {
#if 1
/**
* @brief TMC使用的外部时钟在stm32cubemx中已经进行配置16MHZ
* https://iflytop1.feishu.cn/wiki/wikcnog3hFm6dGFLMRksnhLb7Aw
*/
#else
// HAL_TIM_Base_Start(&TMC4361A_CLK_TIMER);
HAL_TIM_PWM_Start(&htim8, TIM_CHANNEL_4);
#endif
}
#if 0
int32_t port_tmc4361_get_version(uint8_t channel) {
int value;
uint8_t data[5];
data[0] = 0x7f;
port_tmc_motor_spi_write_and_read(&data[0], 5);
value = ((uint32_t)data[1] << 24) | ((uint32_t)data[2] << 16) | (data[3] << 8) | data[4];
return value;
}
#endif
// PE9 COLD_CTR_PWM0
static void port_peltier_cold_ctr_pwm(int pwm) {
/*******************************************************************************
* *
*******************************************************************************/
void DeviceIoService::peltier_cold_ctr_pwm(int pwm) {
__HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1, pwm);
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);
}
// PB0 HOT_CTR_PWM0
static void port_peltier_hot_ctr_pwm(int pwm) {
void DeviceIoService::peltier_hot_ctr_pwm(int pwm) {
__HAL_TIM_SET_COMPARE(&htim3, TIM_CHANNEL_3, pwm);
HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_3);
}
void port_peltier_set_pwm(int pwm) {
void DeviceIoService::peltier_set_pwm(int pwm) {
/**
* @brief
*
@ -110,25 +44,76 @@ void port_peltier_set_pwm(int pwm) {
* COLD_CTR_PWM0(BL) = 1(PWM)
* COLD_CTR(BH) = 0
*/
pwm = pwm * 1000;
if (pwm == 0) {
port_peltier_hot_ctr_pwm(0); /*HOT_CTR_PWM0*/
peltier_hot_ctr_pwm(0); /*HOT_CTR_PWM0*/
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET); /*HOT_CTR*/
port_peltier_cold_ctr_pwm(0); /*COLD_CTR_PWM0*/
peltier_cold_ctr_pwm(0); /*COLD_CTR_PWM0*/
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_10, GPIO_PIN_RESET); /*COLD_CTR*/
} else if (pwm > 0) {
port_peltier_hot_ctr_pwm(pwm); /*HOT_CTR_PWM0*/
peltier_hot_ctr_pwm(pwm); /*HOT_CTR_PWM0*/
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_RESET); /*HOT_CTR*/
port_peltier_cold_ctr_pwm(0); /*COLD_CTR_PWM0*/
peltier_cold_ctr_pwm(0); /*COLD_CTR_PWM0*/
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_10, GPIO_PIN_SET); /*COLD_CTR*/
} else {
port_peltier_hot_ctr_pwm(0); /*HOT_CTR_PWM0*/
peltier_hot_ctr_pwm(0); /*HOT_CTR_PWM0*/
HAL_GPIO_WritePin(GPIOB, GPIO_PIN_1, GPIO_PIN_SET); /*HOT_CTR*/
port_peltier_cold_ctr_pwm(-pwm); /*COLD_CTR_PWM0*/
peltier_cold_ctr_pwm(-pwm); /*COLD_CTR_PWM0*/
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_10, GPIO_PIN_RESET); /*COLD_CTR*/
}
}
/*******************************************************************************
* tmc芯片驱动相关 *
*******************************************************************************/
void DeviceIoService::tmc_motor_spi_select(int channel, bool state) { HAL_GPIO_WritePin(GPIOA, GPIO_PIN_4, state ? GPIO_PIN_SET : GPIO_PIN_RESET); }
void DeviceIoService::tmc_motor_spi_write_and_read(int channel, uint8_t *data, size_t length) {
if (channel == MOTOR_1_TMC4361A_CHANNEL) {
tmc_motor_spi_select(channel, false);
sleepus(10);
HAL_SPI_TransmitReceive(&hspi1, data, data, length, 1000);
tmc_motor_spi_select(channel, true);
}
}
void DeviceIoService::tmc_extern_clk_enable() {
#if 1
/**
* @brief TMC使用的外部时钟在stm32cubemx中已经进行配置16MHZ
* https://iflytop1.feishu.cn/wiki/wikcnog3hFm6dGFLMRksnhLb7Aw
*/
#endif
}
void port_tmc_nFREEZE_pin_set_state(uint8_t channel, bool state) {
if (channel == MOTOR_1_TMC4361A_CHANNEL) {
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_12, state ? GPIO_PIN_SET : GPIO_PIN_RESET);
}
}
void port_tmc_ENN_pin_set_state(uint8_t channel, bool state) {
if (channel == MOTOR_1_TMC2160_CHANNEL) {
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_11, state ? GPIO_PIN_SET : GPIO_PIN_RESET);
}
}
void port_tmc_nRESET_pin_set_state(uint8_t channel, bool state) {}
void port_tmc_extern_clk_enable() {
#if 1
/**
* @brief TMC使用的外部时钟在stm32cubemx中已经进行配置16MHZ
* https://iflytop1.feishu.cn/wiki/wikcnog3hFm6dGFLMRksnhLb7Aw
*/
#else
// HAL_TIM_Base_Start(&TMC4361A_CLK_TIMER);
HAL_TIM_PWM_Start(&htim8, TIM_CHANNEL_4);
#endif
}
} // namespace iflytop
void DeviceIoService::tmc_nFREEZE_pin_set_state(uint8_t channel, bool state) {
if (channel == MOTOR_1_TMC4361A_CHANNEL) {
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_12, state ? GPIO_PIN_SET : GPIO_PIN_RESET);
}
}
void DeviceIoService::tmc_ENN_pin_set_state(uint8_t channel, bool state) {
if (channel == MOTOR_1_TMC2160_CHANNEL) {
HAL_GPIO_WritePin(GPIOE, GPIO_PIN_11, state ? GPIO_PIN_SET : GPIO_PIN_RESET);
}
}
void DeviceIoService::tmc_nRESET_pin_set_state(uint8_t channel, bool state) {}

57
src/device_io_service.hpp

@ -0,0 +1,57 @@
#pragma once
#include <stdint.h>
#include <stdio.h>
#include "libiflytop_micro/stm32/basic/basic.h"
#include "libiflytop_micro\stm32\basic\iflytop_micro_os.hpp"
#include "libtrinamic/src/ic/tmc2160.hpp"
#include "libtrinamic\src\ic\tmc4361A.hpp"
#include "main.h"
#include "project_board.hpp"
#include "spi.h"
#include "tim.h"
#include "usart.h"
namespace iflytop {
using namespace std;
class DeviceIoService : public IflytopMicroOS {
private:
/* data */
public:
DeviceIoService(/* args */) {}
~DeviceIoService() {}
/*******************************************************************************
* *
*******************************************************************************/
void peltier_set_pwm(int pwm);
/*******************************************************************************
* tmc芯片驱动相关 *
*******************************************************************************/
void tmc_motor_spi_write_and_read(int channel, uint8_t *data, size_t length);
void tmc_extern_clk_enable();
void tmc_nFREEZE_pin_set_state(uint8_t channel, bool state);
void tmc_ENN_pin_set_state(uint8_t channel, bool state);
void tmc_nRESET_pin_set_state(uint8_t channel, bool state);
/*******************************************************************************
* OVERRIDE IflytopMicroOS *
*******************************************************************************/
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(); };
virtual void sleepus(uint32_t us) { sys_delay_us(&DELAY_US_TIMER, us); }
private:
// PE9 COLD_CTR_PWM0
void peltier_cold_ctr_pwm(int pwm);
// PB0 HOT_CTR_PWM0
void peltier_hot_ctr_pwm(int pwm);
void tmc_motor_spi_select(int channel, bool state);
};
extern DeviceIoService deviceIoService;
} // namespace iflytop

28
src/libtmcimpl.cpp

@ -0,0 +1,28 @@
#pragma once
#include "libtmcimpl.hpp"
#include "device_io_service.hpp"
namespace iflytop {
using namespace std;
/*******************************************************************************
* TMC4361AImpl *
*******************************************************************************/
void TMC4361AImpl::setResetPinState(bool state) { deviceIoService.tmc_nRESET_pin_set_state(m_channel, state); };
void TMC4361AImpl::setFREEZEPinState(bool state) { deviceIoService.tmc_nFREEZE_pin_set_state(m_channel, state); };
void TMC4361AImpl::setENNPinState(bool state) { deviceIoService.tmc_ENN_pin_set_state(m_channel, state); };
bool TMC4361AImpl::getTargetReachedPinState() { return false; };
void TMC4361AImpl::sleepus(int32_t us) { deviceIoService.sleepus(us); };
void TMC4361AImpl::readWriteArray(uint8_t *data, size_t length) { //
deviceIoService.tmc_motor_spi_write_and_read(m_channel, data, length);
};
/*******************************************************************************
* TMC2160Impl *
*******************************************************************************/
void TMC2160Impl::initialize(uint8_t channel, TMC4361A *tmc4361) {
m_tmc4361 = tmc4361;
TMC2160::initialize(channel);
}
void TMC2160Impl::setENNPinState(bool state) { deviceIoService.tmc_ENN_pin_set_state(m_channel, state); };
void TMC2160Impl::sleepus(int32_t us) { deviceIoService.sleepus(us); };
void TMC2160Impl::readWriteArray(uint8_t *data, size_t length) { m_tmc4361->readWriteCover(data, length); };
} // namespace iflytop

34
src/libtmcimpl.hpp

@ -0,0 +1,34 @@
#pragma once
#include "libiflytop_micro/stm32/basic/basic.h"
#include "libtrinamic/src/ic/tmc2160.hpp"
#include "libtrinamic\src\ic\tmc4361A.hpp"
namespace iflytop {
using namespace std;
/**
* @brief TMC4361和硬件的接口
*/
class TMC4361AImpl : public TMC4361A {
protected:
virtual void setResetPinState(bool state);
virtual void setFREEZEPinState(bool state);
virtual void setENNPinState(bool state);
virtual bool getTargetReachedPinState();
virtual void sleepus(int32_t us);
virtual void readWriteArray(uint8_t *data, size_t length);
};
/**
* @brief TMC2160和硬件的接口
*/
class TMC2160Impl : public TMC2160 {
TMC4361A *m_tmc4361;
public:
void initialize(uint8_t channel, TMC4361A *tmc4361);
protected:
virtual void setENNPinState(bool state);
virtual void sleepus(int32_t us);
virtual void readWriteArray(uint8_t *data, size_t length);
};
} // namespace iflytop

64
src/port.hpp

@ -1,64 +0,0 @@
#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);
/*******************************************************************************
* IflytopMicroOS对接 *
*******************************************************************************/
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

35
src/umain.cpp

@ -1,10 +1,11 @@
#include <stdbool.h>
#include <stdio.h>
#include "device_io_service.hpp"
#include "libiflytop_micro\stm32\basic\basic.h"
#include "libtmcimpl.hpp"
#include "libtrinamic/src/ic/tmc2160.hpp"
#include "libtrinamic\src\ic\tmc4361A.hpp"
#include "port.hpp"
#include "project_board.hpp"
//
#include "i2c.h"
@ -17,11 +18,11 @@ using namespace iflytop;
using namespace std;
class Main {
public:
TMC4361AImpl tmc4361motor1;
TMC2160Impl tmc2160motor1;
TMP117 tmp117[4];
IflytopCanSlave canSlaveService;
IflytopMicroOSImpl os;
TMC4361AImpl tmc4361motor1;
TMC2160Impl tmc2160motor1;
TMP117 tmp117[4];
IflytopCanSlave canSlaveService;
IflytopMicroOS *os;
bool canOnRxDataFlag;
@ -42,9 +43,17 @@ class Main {
*/
void testCanSlaveTxAndRx();
void testTmp117();
void do_debug_light_state() {
static uint32_t lastprocess = 0;
if (sys_haspassedms(lastprocess) > 300) {
lastprocess = HAL_GetTick();
HAL_GPIO_TogglePin(DEBUG_LIGHT_PORT, DEBUG_LIGHT_PIN);
}
}
};
void Main::initialize() {
os = &deviceIoService;
/*******************************************************************************
* *
*******************************************************************************/
@ -56,7 +65,7 @@ void Main::initialize() {
/*******************************************************************************
* *
*******************************************************************************/
port_tmc_extern_clk_enable();
deviceIoService.tmc_extern_clk_enable();
// 4361初始化
TMC4361AImpl::TMC4361AConfig_t *tmc4361aconfig = TMC4361AImpl::createDeafultTMC4361AConfig();
tmc4361aconfig->base_config.fs_per_rev = 200;
@ -91,7 +100,7 @@ void Main::initialize() {
* CANSLAVEService初始化 *
*******************************************************************************/
IflytopCanSlave::iflytop_can_slave_config_t *config = canSlaveService.createDefaultConfig(DEVICE_ID);
canSlaveService.initialize(&os, config);
canSlaveService.initialize(os, config);
canSlaveService.onCanRxData.connect(this, &Main::onCanRxData);
canSlaveService.activateRxIT();
}
@ -102,7 +111,7 @@ void Main::main(int argc, char const *argv[]) {
// port_peltier_set_pwm(0);
initialize();
while (true) {
port_do_debug_light_state();
do_debug_light_state();
// testCanSlaveTxAndRx();
// testTmp117();
}
@ -119,8 +128,8 @@ void Main::testCanSlaveTxAndRx() {
{
static uint32_t lastcall;
static uint8_t tx[8] = {1, 2, 3, 4, 5, 6, 7, 8};
if (os.hasPassedMS(lastcall) > 1000) {
lastcall = os.getTicket();
if (os->hasPassedMS(lastcall) > 1000) {
lastcall = os->getTicket();
canSlaveService.translate(0x01, tx, 8, 2);
if (canSlaveService.getLastTransmitStatus() == HAL_OK) {
ZLOGI(TAG, "send ok");
@ -148,8 +157,8 @@ void Main::testCanSlaveTxAndRx() {
void Main::testTmp117() {
static uint32_t lastcall;
if (os.hasPassedMS(lastcall) > 1000) {
lastcall = os.getTicket();
if (os->hasPassedMS(lastcall) > 1000) {
lastcall = os->getTicket();
for (size_t i = 0; i < 4; i++) {
float temp = tmp117[i].getTemperature();
if (tmp117[i].getLastCallStatus() == HAL_OK) {

Loading…
Cancel
Save