Browse Source

修复调试指示灯的BUG

master
zhaohe 12 months ago
parent
commit
d5f882497d
  1. 2
      transmit_disinfection_micro Debug.launch
  2. 5
      usrc/app_main.cpp
  3. 1
      usrc/base/protocol_processer_mgr.cpp
  4. 3
      usrc/board/public_board.cpp
  5. 22
      usrc/board_base/app_share/tmc_motor_group.cpp

2
transmit_disinfection_micro Debug.launch

@ -78,6 +78,6 @@
<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
<listEntry value="4"/>
</listAttribute>
<stringAttribute key="org.eclipse.dsf.launch.MEMORY_BLOCKS" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&lt;memoryBlockExpressionList context=&quot;reserved-for-future-use&quot;/&gt;"/>
<stringAttribute key="org.eclipse.dsf.launch.MEMORY_BLOCKS" value="&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot; standalone=&quot;no&quot;?&gt;&lt;memoryBlockExpressionList context=&quot;reserved-for-future-use&quot;&gt;&lt;gdbmemoryBlockExpression address=&quot;536939692&quot; label=&quot;&amp;amp;(((((((((this)-&amp;gt;tmcPowerGroup)).m_motor)[0]).m_mutex)).recursiveMutex))&quot;/&gt;&lt;gdbmemoryBlockExpression address=&quot;536883284&quot; label=&quot;&amp;amp;(((((((DEVICE)-&amp;gt;m_motor)[0]).m_mutex)).recursiveMutex))&quot;/&gt;&lt;gdbmemoryBlockExpression address=&quot;536939616&quot; label=&quot;&amp;amp;(((this)-&amp;gt;tmcPowerGroup))&quot;/&gt;&lt;/memoryBlockExpressionList&gt;"/>
<stringAttribute key="process_factory_id" value="com.st.stm32cube.ide.mcu.debug.launch.HardwareDebugProcessFactory"/>
</launchConfiguration>

5
usrc/app_main.cpp

@ -91,6 +91,8 @@ void umain() {
ZLOGI(TAG, "boardId : %d", PublicBoard::ins()->getBoardId());
ZLOGI(TAG, "=");
zcanbus_init(PublicBoard::ins()->getBoardId());
ProtocolProcesserMgr::ins()->initialize();
PublicCmdProcesser::ins()->initialize();
@ -127,7 +129,8 @@ void umain() {
SysMgr::ins()->dumpSysInfo();
ZLOGI(TAG, "=");
while (true) {
osDelay(1);
osDelay(30);
debug_light_ctrl();
// ZLOGW(TAG, "main loop");
}
}

1
usrc/base/protocol_processer_mgr.cpp

@ -28,7 +28,6 @@ static void zcanbus_on_connected(bool connected) {
void ProtocolProcesserMgr::initialize() {}
void ProtocolProcesserMgr::startSchedule(int deviceId) {
zcanbus_init(deviceId);
zcanbus_reglistener(zcanbus_on_rx);
zcanbus_reg_on_connected_listener(zcanbus_on_connected);

3
usrc/board/public_board.cpp

@ -101,8 +101,9 @@ void PublicBoard::initialize() {
debugUartInit();
canInit();
if (getDeviceIdFromFlash() == kH2O2SensorBoard) {
} else {
m_debugled.initAsOutput(H2O2_SENSOR_BOARD_DEBUG_LIGHT_GPIO, kxs_gpio_nopull, false, false);
} else {
m_debugled.initAsOutput(DEBUG_LIGHT_GPIO, kxs_gpio_nopull, false, false);
}
}

22
usrc/board_base/app_share/tmc_motor_group.cpp

@ -5,9 +5,10 @@ using namespace iflytop;
/***********************************************************************************************************************
* *
***********************************************************************************************************************/
static osTimerId MotorMonitorTimerId; // 压力传感器数值上报
static bool motorErrorFlagCache[10]; // 电机异常状态上报标志位
static zmutex motorErrorFlagCacheLock;
static osTimerId MotorMonitorTimerId; // 压力传感器数值上报
static bool motorErrorFlagCache[10]; // 电机异常状态上报标志位
static zmutex motorErrorFlagCacheLock;
static TmcMotorGroup* tmcgroup_p;
static bool motorErrorFlag_get(int subindex) {
bool ret;
@ -26,12 +27,15 @@ static void motorErrorFlag_set(int subindex, bool val) {
}
static void onMotorMonitorTimer(void const* argument) {
return;
// 电机异常检查
TmcMotorGroup* DEVICE = (TmcMotorGroup*)argument;
// ZLOGI(TAG, "x MotorMonitorTimerId: %p", argument);
// return;
// return;
// 电机异常检查
TmcMotorGroup* DEVICE = (TmcMotorGroup*)tmcgroup_p;
report_exeception_data_t data;
for (size_t i = 0; i < DEVICE->motorNum(); i++) {
ZLOGI(TAG, "check motor %d", i);
// ZLOGI(TAG, "check motor %d", i);
bool estate = motorErrorFlag_get(i);
if (!DEVICE->motor(i)->ping()) {
@ -100,8 +104,10 @@ void TmcMotorGroup::initialize(Pin_t tmcPowerPin, TMC51X0Cfg cfg0, TMC51X0Cfg cf
ZLOGI(TAG, "motor1: reset:%d drv_err:%d uv_cp:%d", gstate1.reset, gstate1.drv_err, gstate1.uv_cp);
motorErrorFlagCacheLock.init();
tmcgroup_p = this;
osTimerDef(MotorMonitorTimer, onMotorMonitorTimer);
MotorMonitorTimerId = osTimerCreate(osTimer(MotorMonitorTimer), osTimerPeriodic, this);
ZLOGI(TAG, "MotorMonitorTimerId: %p", this);
osTimerStart(MotorMonitorTimerId, 1000);
m_isInitialized = true;
}
@ -208,4 +214,4 @@ void TmcMotorGroup::fn_pump_ping(ProcessContext* cxt) {
CHECK_PARAM_LEN(PRAAM_LEN(), 1);
MOTOR_CHECK();
zcanbus_send_ack(cxt->packet, NULL, 0);
}
}
Loading…
Cancel
Save