Files
BLTouchTest/App/Core.h
2023-05-19 15:50:27 +08:00

59 lines
1.9 KiB
C

/*
* 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);