📄 lc_var.h
字号:
/***************************************************/
/* 寻迹小车 FollowMe 项目 */
/* —— 主控程序轨迹控制模块 */
/* 之变量声明 */
/* 20060905 */
/* By DingQi */
/***************************************************/
// 注:以下文档的 TAB 为2个字符!
// 数据接收用
unsigned char xdata ga_ucRcvBuf[MaxRcvByte_C]; // 接收缓冲区
unsigned char data gi_ucSavePtr; // 存数指针,每收到一个字节保存到缓冲区后加“1”。
unsigned char data gi_ucGetPtr; // 从缓冲区中取数的指针,每取出一个字节后加“1”。
unsigned char idata gi_ucStartPtr; // 帧起始位置,指向数据区开始。
unsigned char idata gi_ucEndPtr; // 帧结束位置。
unsigned char idata gc_ucDataLen; // 帧长,即数据区字节数。
bit gb_NewData; // 串口收到一个字节标志,为减少变量交互。
bit gb_StartRcv; // 开始接收数据帧标志。
bit gb_DataOK; // 数据准备好标志。
unsigned char xdata ga_ucTxdBuf[MaxTxdByte_C+4]; // 发送缓冲区,用于返回转速值等。
unsigned char data gi_ucTxdPtr; // 发送指针
unsigned char data gc_ucTxdCnt; // 发送字节计数
// 控制命令数据, 采用数组存放, 0 - 对应电机 1 , 1 - 对应电机 2
int idata ga_iPWM_Value[2]; // 接收到的或者是PID计算出的 PWM 控制值, 单位:0.1%
int idata ga_iRotateSpeed[2]; // 接收到的转速值, 单位: 0.1 转/分
unsigned int xdata ga_uiRotateNum[2]; // 接收到的转动脉冲数,
unsigned int idata g_uiPWM_Freq; // 接收到的 PWM 频率, 单位: Hz,此值两个电机相同
bit gb_M1CalOutValue; // 电机 1 得到了新的PWM控制值,提示计算新的输出控制数据
bit gb_M2CalOutValue; // 电机 2 得到了新的PWM控制值,提示计算新的输出控制数据
// 行走脉冲计数处理
extern unsigned int idata gac_uiPulsCnt[2]; // 对码盘脉冲计数,从程序开始计,一直到程序结束,按现在的码盘,可以走851米
extern unsigned int idata ga_uiStopCnt[2]; // 收到定数走命令后计算出的 gui_PulsCnt 停止值
extern char data ga_cMotorStat[2]; // 电机运转标志
// PID电机调速控制算法
unsigned int xdata g_uiKp; // 比例系数, 这几个参数暂时定为两个电机相同。
unsigned int xdata g_uiTi; // 积分系数
unsigned int xdata g_uiTd; // 微分系数
unsigned int xdata g_uiPID_Ratio; // PID 系数的比例值
extern unsigned char data gac_ucGetSpeedCnt[2]; // 对速度采集减计数,大于3次后开始计算PID
bit gb_EnablePID; // 允许PID控制标志,收到速度控制命令时建立,收到PWM命令时清除
// 速度测量
extern int idata ga_iCurSpeed[2]; // 计算出的当前转速,单位 0.1转/分
// 走轨迹
extern char idata g_cSampleOut; // 采样输出值
char idata g_cOldSampOut; // 上次的采样输出值
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -