Exemple #1
0
void SYS_INIT(void)
{
	LED_INIT();
	LED_FLASH();
	Moto_Init(); 
	LED_FLASH();	
	
	Tim3_Init(500);
	Nvic_Init();
	Uart1_Init(115200);
	
	ANO_TC_I2C2_INIT(0xA6,400000,1,1,3,3);
	MPU6050_Init();

	Spi1_Init();
	Nrf24l01_Init(MODEL_TX2,40);
 	if(Nrf24l01_Check())
		Uart1_Put_String("NRF24L01 IS OK !\r\n");
 	else 									
		Uart1_Put_String("NRF24L01 IS NOT OK !\r\n");
		
	ADC1_Init();
	
	FLASH_Unlock();
	EE_INIT();
	EE_READ_ACC_OFFSET();
	EE_READ_GYRO_OFFSET();
	EE_READ_PID();
	
	Tim3_Control(1);
}
Exemple #2
0
void SYS_INIT(void)
{
	LED_INIT();			//LED及串口IO 初始化
	LED_FLASH();		//LED闪烁
	Tim3_Init(500);	//中断初始化 //1000=1MS,500=0.5MS
	Moto_Init();	  //PWM
	
	//	Uart1_Init(115200);	//串口初始化,飞控上几乎无用
	
	Spi1_Init();		//SPI初始化
	Nvic_Init();		//中断初始化
	Nrf24l01_Init(MODEL_TX2,40);	//2401中断初始化  主发送 通道 40
	
// 	if(Nrf24l01_Check())	Uart1_Put_String("NRF24L01 IS OK !\r\n");			//检测2401是否初始化成功
// 	else 									Uart1_Put_String("NRF24L01 IS NOT OK !\r\n");
	
	InitMPU6050();
	
	ADC1_Init();		//检测电池电压
	FLASH_Unlock();	//保存飞飞控参数
	EE_INIT();
	EE_READ_ACC_OFFSET();
	EE_READ_GYRO_OFFSET();
	EE_READ_PID();
	
	PID_ROL.P = PID_PIT.P = 5;	//用于初始化pid,如用匿名上位机写入pid,则屏蔽
	PID_ROL.D = PID_PIT.D = 0.1;			
	PID_YAW.P = 0.5;	
	PID_YAW.D = 0.05;			
}
Exemple #3
0
//**************************************************************************
//参数加载
//**************************************************************************
void	paramLoad(void)
{

	ctrl.pitch.shell.kp = 4;    //5
	ctrl.pitch.shell.ki = 0.02;
	
	ctrl.pitch.core.kp = 1.4;   //1.5
	ctrl.pitch.core.ki = 0.07;   
	ctrl.pitch.core.kd = 0.35;  //0.16
	
	//The data of roll
	ctrl.roll.shell.kp = 4;
	ctrl.roll.shell.ki = 0.02;


	ctrl.roll.core.kp = 1.4;
	ctrl.roll.core.ki = 0.07;
	ctrl.roll.core.kd = 0.35;
	
	//The data of yaw
	ctrl.yaw.shell.kp = 5;
	ctrl.yaw.shell.kd = 0;
	
	ctrl.yaw.core.kp = 1.8;
	ctrl.yaw.core.ki = 0;
	ctrl.yaw.core.kd = 0.1;
	
	//limit for the max increment
	ctrl.pitch.shell.increment_max = 20;
	ctrl.roll.shell.increment_max = 20;
	
	ctrl.ctrlRate = 0;
	
  EE_READ_ACC_OFFSET();   //读取加速度零偏
	EE_READ_MAG_OFFSET();   //读取磁力计零偏
	EE_READ_Attitude_PID(); //读取内环PID参数
	Gyro_OFFSET();          //采集陀螺仪零偏
}