//------------------------------------------------------------------------------ // 模块名称:数码管驱动模块 // 文件名称:bsp_digital_tube // 版本名称:V1.0 // 文件说明:头文件 // 日期时间:2018年8月15日20点02分 // 文件作者:Jackie Chan // 修改记录: // 版本号 日期 作者 说明 // V1.0 2018.08.15 J.C 正式发布 // // 公司名称:多场低温科技有限公司 // //------------------------------------------------------------------------------ #ifndef __BSP_DIGITAL_TUBE__H__ #define __BSP_DIGITAL_TUBE__H__ #include typedef enum { NO_0 = 0, NO_1, NO_2, NO_3, NO_4, NO_5, NO_6, NO_7, NO_8, NO_9, NO__, NO_NULL, }SEG_NUM_E; typedef enum { IDLE, // 空闲模式 WORK, // 工作模式 SEARCH, // 搜索模式 }STATE_E; typedef enum { MODE_PULSE, // 脉冲显示模式 MODE_ANGLE, // 角度显示模式 }MODE_E; typedef enum { DIR_CW, // 样品杆从上往下看,顺时针旋转(+) DIR_CCW, // 样品杆从上往下看,逆时针旋转(-) }DIR_E; typedef struct { char buf[9]; // 8个数码管的刷新缓冲区 uint8_t disp_mode; // 显示模式,角度显示和脉冲数量显示 uint8_t cnt; // 数码管轮询显示计数 uint8_t state; // 工作状态,空闲模式、工作模式 uint8_t dir; // 电机旋转方向,样品杆从上往下看,顺时针(+)还是逆时针(-) int32_t pulse; // 电机转动过的脉冲数量,+表示顺时针累积脉冲,-表示逆时针累积 int32_t tim_pulse_cnt; // 定时器计数的脉冲数量,每1ms更新到上面pluse中 int32_t angle; // 电机转动过的角度 }DIGITIAL_TUBE_T; void bsp_InitDigitalTube(void); void bsp_DigitalTubeMainLoop(void); void bsp_TubeTest(uint8_t _com, uint8_t _seg); void bsp_UpdateDisplayBuf(void); void bsp_ToogleDispMode(void); void bsp_ToogleStateMode(void); #endif //-------------------------------- End of file ---------------------------------