RobotHardware-UESTC/Hardware/银星机器人底盘/PiRobot-YH_Firmware v1.1/STM32/Lib/Encoder/encoder_implement.h

36 lines
745 B
C++

#ifndef PIBOT_ENCODER_IMP_H_
#define PIBOT_ENCODER_IMP_H_
#include "encoder.h"
//编码器实现 编码器原理具体可以参考https://www.jianshu.com/p/068fb9882655
class EncoderImp : public Encoder
{
public:
EncoderImp(unsigned char num, bool _reverse=0);
//初始化
virtual void init();
//清除编码器
virtual void clear();
//获取累计编码器值
virtual long get_total_count();
//获取编码器变化值, 用于pid计算
virtual long get_increment_count_for_dopid();
//获取编码器变化值, 用于odom计算
virtual long get_increment_count_for_odom();
unsigned char get_reverse(){return reverse;}
private:
bool reverse;
unsigned char num;
long pid_pos, odom_pos;
float total_count;
};
#endif