|
- #ifndef __PLSR_H__
- #define __PLSR_H__
-
- #include "stdint.h"
-
-
- /* 结构体定义,每段脉冲的参数 */
- typedef struct
- {
- uint32_t Frequency ; ///<< 脉冲的频率
- int32_t PulseCount; ///<< 脉冲的总数
- int8_t NextPulse; ///<< 下一段脉冲是第几个 , 若为0代表默认下一个脉冲
- uint8_t EXT; ///<< EXT
- } Pulse;
-
- typedef struct
- {
- uint8_t SentPost; ///<<脉冲发送端子
- uint8_t DirPost; ///<<脉冲方向端子
- uint8_t EXT; ///<<EXT信号
- uint8_t DirDelay; ///<<脉冲方向延时时间
- uint8_t Dir; ///<<脉冲方向逻辑(逻辑正0,逻辑反1)
- uint8_t AccMod; ///<<脉冲加减速模式
- uint8_t RunMod; ///<<运行模式(相对0,绝对1)
- uint8_t AllPulse; ///<<脉冲总段数
- uint8_t StartPulse; ///<<起始执行段数
- uint32_t InitSpeed; ///<<脉冲默认速度
- uint16_t AccUpTime; ///<<脉冲默认速度加速时间
- uint16_t AccDownTime; ///<<脉冲默认速度减速时间
- } Option;
-
- /* 变量声明 */
- extern Pulse PulseOutput[10];
- extern Option Options;
-
- extern uint8_t NowPulse; ///<< 当前处于第几段脉冲
- extern uint8_t PrePulse; ///<< 之前处于第几段脉冲
- extern uint8_t PulseNum; ///<< 一共有多少段脉冲(中断内使用)
- extern int32_t MAX_Pulse; ///<< 最多的脉冲数
- extern int32_t AccUpCount; ///<<加速脉冲数
- extern int32_t AccDownCount;///<<减速脉冲数
- extern int32_t NowMAXPulse; ///<<当前要达到的总脉冲
- extern int32_t PulseCount;
- extern int32_t NextPulseEND;
-
-
- /* 函数声明 */
- void SetFrequency(uint8_t SentPost, uint32_t Frequency);
- void SetPulse(uint8_t Pulse, uint32_t Ferquency, int32_t Count, uint8_t Direction, int8_t NextPulse);
- void PulseBaseInit(uint8_t StartPulse, uint8_t PulseMod, int32_t MAX_Pulse);
- void PulseStart(void);
- float GetAcc(int32_t Start, int32_t End, int32_t AccCount);
- void AddPulse(uint8_t Pulse, uint32_t Ferquency, int32_t Count, int8_t NextPulse);
- void PulseInit(uint8_t Pulse, uint32_t Ferquency, int32_t Count, int8_t NextPulse);
- void SetNextPulse(void);
- void PLSROptionLoad(void);
- void PLSRPluseLoad(void);
- void CountSave(void);
- void GetAddCount(void);
-
- uint32_t GetBase(uint8_t NowPulseNUM);
-
-
- #endif
|