/* * Core.h * * Created on: 2023年5月17日 * Author: User */ #include "config.h" /****************** 任务模式和任务状态 *******************/ #define MODE_IDLE 0 // 空闲模式 #define MODE_HOME 1 // 回零模式 #define MODE_TEST 2 // 测试模式 #define STATE_INIT 0x00 // 任务开始 #define STATE_ERROR 0xFE // 状态异常 #define STATE_DONE 0xFF // 任务完成 #define STATE_IDLE_SHOW 0x01 #define STATE_HOME_FIRST_INIT 0x01 #define STATE_HOME_FIRST_WAIT 0x02 #define STATE_HOME_LEAVE_INIT 0x03 #define STATE_HOME_LEAVE_WAIT 0x04 #define STATE_HOME_AGAIN_INIT 0x05 #define STATE_HOME_AGAIN_WAIT 0x06 #define STATE_TEST_INIT 0x01 #define STATE_TEST_FAST_UP_WAIT 0x02 #define STATE_TEST_FAST_DOWN_WAIT 0x03 #define STATE_TEST_SLOW_WAIT 0x04 #define FUN_HOME 0 #define FUN_TEST 1 /****************** 错误代码 *******************/ #define ERROR_NONE 0xFF // 无错误 #define ERROR_BLTOUCH 0 // BLTouch报警 #define ERROR_HOME_FIRST 1 // 首次回零距离过长 #define ERROR_HOME_LEAVE 2 // 回零时零位持续闭合 #define ERROR_HOME_AGAIN 3 // 再次回零距离过长 #define ERROR_TEST_INIT 4 // 测试开始时电机解锁,需要重新回零 #define ERROR_TEST_MAX 5 // 测试距离过长 /****************** 功能参数配置 *******************/ #define STEP_PER_CIRCLE 3200 // Step/圈 => 4mm #define HOME_PRESET_POS (STEP_PER_CIRCLE * 4) // 4圈 => 16mm #define HOME_LEAVE_POS (STEP_PER_CIRCLE * 0.5) // 0.5圈 => 2mm #define TEST_INIT_POS (STEP_PER_CIRCLE * 1) // 1圈 => 4mm #define TEST_MAX_POS (STEP_PER_CIRCLE * 2.5) // 2.5圈 => 10mm /****************** 公用变量和函数 *******************/ extern u8 runMode; extern u8 runState; void changeMode(u8 mode); void changeState(u8 state);