52 lines
1.5 KiB
C
52 lines
1.5 KiB
C
//------------------------------------------------------------------------------
|
||
// 模块名称:步进电机脉冲驱动模块
|
||
// 文件名称:bsp_step_moto
|
||
// 版本名称:V1.0
|
||
// 文件说明:头文件
|
||
// 日期时间:2018年8月23日20点37分
|
||
// 文件作者:Jackie Chan
|
||
// 修改记录:
|
||
// 版本号 日期 作者 说明
|
||
// V1.0 2018.08.23 J.C 正式发布
|
||
//
|
||
// 公司名称:多场低温科技有限公司
|
||
//
|
||
//------------------------------------------------------------------------------
|
||
|
||
#ifndef _BSP_STEMP_MOTO_H
|
||
#define _BSP_STEMP_MOTO_H
|
||
|
||
#include <stdint.h>
|
||
|
||
typedef struct
|
||
{
|
||
uint8_t Dir; /* 0 表示正转 1 表示反转 */
|
||
uint32_t StepFreq; /* 步进频率 */
|
||
uint32_t StepCount; /* 剩余步数 */
|
||
uint32_t AllStep; /* 一次转动命令所要走的脉冲总数 */
|
||
uint32_t CurrentStep; /* 已经走过的步数 */
|
||
uint32_t DispStep; /* 显示走过的步数,零点搜索时候不计数 */
|
||
uint8_t Running; /* 1表示正在旋转 0 表示停机 */
|
||
uint8_t Pos; /* 线圈通电的相序,0-7 */
|
||
int64_t pv_pulse; // 当前的脉冲值
|
||
int64_t sv_pulse; // 电脑端的设定脉冲值
|
||
int64_t prev_pv_pulse;// 上一次脉冲值,用于检测过零点
|
||
int32_t zero_counter; // 过零点步数计数器,每走一步+1或-1,到STEP_PER_LAP翻转PA6
|
||
} MOTO_T;
|
||
|
||
extern MOTO_T g_tMoto;
|
||
|
||
void bsp_InitStepMoto(void);
|
||
void MOTO_Start(uint32_t _speed, uint8_t _dir, int32_t _stpes);
|
||
void MOTO_ZorePos(void);
|
||
void MOTO_Stop(void);
|
||
void MOTO_Pause(void);
|
||
void MOTO_ShangeSpeed(uint32_t _speed);
|
||
uint32_t MOTO_RoudToStep(void);
|
||
|
||
extern MOTO_T g_tMoto;
|
||
|
||
#endif
|
||
|
||
/***************************** 安富莱电子 www.armfly.com (END OF FILE) *********************************/
|