Skip to content

ZaleTang/MPC-EM

Repository files navigation

#NXP MPC5604芯片智能车程序 #built by 安徽工程大学机器人协会 Zamir #build date 2017.6

主要文件说明:

1,deal
	本文件是核心函数所在位置,包括了整个路径的识别与处理。
	函数说明:
	1),AD_zhi()
		读取电感读得的AD值并进行处理,供后续程序处理。注意实际电感排序与程序里各个通道的对应关系。
	2),DirectionControl()
		方向控制函数,利用差比合计算车身与赛道的偏角,采用pid反馈调节实时控制舵机的打角实现方向的控制。并对特殊赛道进行识别处理。其中pid的参数值计算位于Interrupt文件中。
		
2,Interrupt
	本文件配置了系统的中断,使系统可以循环执行方向控制函数实现控制。
	1),PIT1inter()
		定时器1中断处理函数,其中包含了Encoder_count()函数(用以读取编码器获得数度值计算feedback实现闭环控制),DirectionControl()函数(用以控制车)。其中,K1,K2分别为两个拨码开关的状态,使车有多个基速度档,以便适应实际情况。K3,K4为测试时的速度档,不稳定。kp,kd为pid的p值与d值,由FeedBck计算而来,需要测试其表达式中的参数以获得最佳的pd参数值实现好的闭环控制。
	2),Tingche()
		停车中断函数,由外部中断控制,在引脚被触发时进入中断,实现检测停车线后停车的处理。

3,main
	本文件是main()函数的所在,系统由此处开始运行。其中:
	1),System_init()
		系统初始化函数,其中包含了各个模块的初始化函数,将在后面介绍。
	2),Visual_Data()
		将DATA数组中的数据通过蓝牙发送至上位机,用以读取传感器的值来分析。
		由于一次只能发送四个int字符,故在需要读取超过四个的数据时,需要切换拨码开关K1,K2来切换发送不同的数据。

4,SYSTEM
	本文件包含了System_init()函数,其中包括了各个模块的初始化:
	void System_init()
	{
  		SWT_DisableWatchDog(); 		//看门狗初始化
  		SYSTEM_Init(); 				//锁相环配置,配置系统主频
  		LED_Init();  				//LED灯相关引脚初始化
		PWM_Init();					//PWM模块初始化,用以电机以及舵机的控制
   		EX_Interrupt();				//配置并初始化硬件中断
  		initIrqVectors();			//配置并初始化中断向量表
  		initINTC();  				//配置并初始化软件中断
  		enableIrq();				//使能中断
   		initPIT();					//初始化定时器中断
  		ADC_Init();					//ADC模块初始化
  		Encoder_Init();				//编码器初始化
  		LINFlex0_init();			//UART串口初始化
  		init_I2C();					//I2C模块初始化
	}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages