- 3
- 0
- 约9.02千字
- 约 6页
- 2017-06-08 发布于湖北
- 举报
东华大学程序清单
东华大学程序清单
#include hidef.h //基本定义和宏定义
#include mc9s12dg128.h //器件相关定义
#include stdlib.h
#pragma LINK_INFO DERIVATIVE mc9s12dg128b
#define WIDTH 0x0EA6 //定义半周期的减计数器初值
#define BLACK_ROAD 0 //定义黑色路面的状态值
#define WHITE_ROAD 1 //定义白色路面的状态值
#define Kp 8 //比例系数
#define Ki 0//积分系数(暂定为0.5,实际上是除以2取整,每几个控制周期加一次积分)
#define Kd 5//微分系数
#define Speed_Kp 0//速度比例系数
#define Speed_Kd 20 //速度微分系数
#define CONTROL_PERIOD 2 //控制周期的比例系数:控制周期=CONTROL_PERIOD*半周期长度
#define INTEGRAL_PERIOD 10 //积分周期的比例系数:积分周期=INTEGRAL_PERIOD*半周期长度
#define HIGHEST_SPEED 75 //全程最高速度
#define NORMAL_SPEED 65 //直道一般速度
#define LOWEST_SPEED 50 //全程最低速度(用于进弯时)
#define MAX_UK 30 //控制量的最大值的绝对值
#define MAX_LEFT_UK 25 //最大左转控制量
#define MAX_RIGHT_UK -30 //最大右转控制量
#define MAX_LEFT_DUTY MAX_LEFT_UK+140//最大左转占空比
#define MAX_RIGHT_DUTY MAX_RIGHT_UK+140 //最大右转占空比
#define STRAIGHT_HIGH_LIMIT 400 //直道最长加速时间限制
#define STRAIGHT_LOW_LIMIT 300 //直道最长减速时间限制
#define CURVE_LIMIT 70 //弯道计数器极限值
#define USE_SPEED_KD //此处决定是否使用微分控制速度
#undef USE_SPEED_KD
static int period_counter=0; //控制周期计数器
static int integral_counter=0; //积分计数器
#ifdef USE_SPEED_KD
#else
static int curve=0; //弯道控制周期计数器
static long straight_high=0; //直道加速时间计数器
static long straight_low=0; //直道减速时间计数器
static int speed_switch=1; //速度选择开关
#endif
static int last_received_signal[8]={0}; //上次采样得到的路面状态信号
static int present_received_signal[8]={0}; //本次采样得到的路面状态信号
int Last_Error=0; //上两次的误差e(k-2)
int Prev_Error=0; //上一次的误差e(k-1)
int Present_Error=0; //本次误差e(k)
int uk=0; //经PID运算得到的控制量
#pragma CODE_SEG __NEAR_SEG NON_BANKED
interrupt 26 void MDC_ISR(void); //减计数器中断例程,中断向量号:26
void CRG_Init(void); //时钟初始化例程
void PORT_Init(void); //端口初始化例程
void MDC_Init(void);//减计数器初始化例程
void Servo_Init(void); //舵机用PWM初始化例程
void Motor_Init(void);//电机用PWM初始化例程
void Test(void); //启动测试例程(不是必需的)
byte Road_Judge(int); //路面判断例程
void Road_Status_Output(int,byte); //路面情况输出例程
byte Signal_Filter(void); //无效传感器信号滤除例程
void Get_Error(void); //计算误差例程
void Execute_Control(void); //进行控制作用例程
void Servo_Adjust
原创力文档

文档评论(0)