Exemplo n.º 1
0
void FCInitOne()
{


   delay_nms(1000);

   EeSave1.Solo.BadSave = 0;
   EeReadTrg(&EeSave1);
   EePromDeal(&FC1.Run, sizeof(FC_RUNING_Def) - CRC_LEN, &EeSave1);
   if (EeSave1.Solo.BadSave)
   {
      uint08 tmp;

      uint16 *pdata = (uint16 *)&FC1.Run;
      EeSave1.Solo.BadSave = 0;

      for (tmp = 0; tmp < FC_SETTING_MAX; tmp++)
      {
         pdata[tmp] = FCParCfg[tmp].Default;
      }
   }
   EeWriteTrg(&EeSave1);


   FC1.State.Sys.All = 0;


   PID(&FC1.FCpid, &FC1.Run.FCpidPar);

   FC1.Buff.RoomTempAid = 200;
   FC1.Buff.DiTreat.All = 0;

}
Exemplo n.º 2
0
uchar twi_write(uchar W_ADDRESS,uchar W_DATA)
{
	START();										//TWI启动
	WAIT();
	if(SATUS()!=_START)
	return TRUE;
	
	TWI_WRITE(W_MPU6050_ADDR);						//写MPU6050地址
	WAIT();
	if(SATUS()!=MT_SLA_ACK)
	return TRUE;
	
	TWI_WRITE(W_ADDRESS);     	                   //写6050相应寄存器地址
    WAIT();
    if(SATUS()!=MT_DATA_ACK) 
	return TRUE;
	
	TWI_WRITE(W_DATA);						        //写数据到 6050相应寄存器
	WAIT();
	if(SATUS()!=MT_DATA_ACK)
	return TRUE;
	
	STOP();											//TWI停止
	delay_nms(10);
	return FALSE;
	
}
Exemplo n.º 3
0
void main(void)
{
 unsigned const PWMPeriod = 1500; //设置PWM周期参数,const声明此值不允许改变.该数值太大,会导致LED闪烁
volatile unsigned int i; //声明变量i是随时可变的,系统不要去优化这个值
WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗
P1DIR |=BIT3; // 设置 P1.3为输出
P1SEL |=BIT3; // 设置 P1.3为TA0.2输出
P1DIR |=BIT4;
P1SEL |=BIT4;
TA0CCR0 = PWMPeriod; // 设置PWM 周期
TA0CCTL2 = OUTMOD_7; // 设置PWM 输出模式为:7 - PWM复位/置位模式,
TA0CCTL3 = OUTMOD_7;
TA0CCTL4 = OUTMOD_7;

// 即输出电平在TAR的值等于CCR2时复位为0,当TAR的值等于CCR0时置位为1,改变CCR2,从而产生PWM。其实模式2也可以
TA0CTL= TASSEL_2 +MC_1; // 设置TIMERA的时钟源为SMCLK, 计数模式为up,到CCR0再自动从0开始计数
while(1)
{
TA0CCR2=0;//确保最开始是暗的
TA0CCR3=0;
TA0CCR4=0;
//渐亮过程:不断设置TA0CCR2的值,使翻转的时间变长,改变PWM的占空比
for(i=0;i<PWMPeriod;i+=1)
{
TA0CCR2=i;
TA0CCR3=i;
TA0CCR4=i;
delay_nms(4-(i/500)); //占空比变化的延时,调整延迟时间可改变呼吸灯变暗的速度
 //在暗的时候延长delay时间,可增强效果
}
//渐暗过程:不断设置TA0CCR2的值,使翻转的时间变短,改变PWM的占空比
for(i=PWMPeriod;i>0;i-=1)
{
TA0CCR2=i;
TA0CCR3=i;
TA0CCR4=i;
delay_nms(4-(i/500)); //占空比变化的延时,调整延迟时间可改变呼吸灯变暗的速度
//在暗的时候延长delay时间,可增强效果
 }
TA0CCR2=0; //确保灯暗
TA0CCR3=0;
TA0CCR4=0;
delay_nms(250); //时间长一点,增强视觉效果
}
}
Exemplo n.º 4
0
void main(void)
{
	int AX;
	int AY;
	twi_init();
	delay_nms(50);
	MPU_6050_init();
	delay_nms(500);
	Usart_init();
	//hc05_init();
	while(1)
	{
		delay_nms(50000);
		AX=Get_data(ACCEL_XOUT_H)/187.62;
		AY=Get_data(ACCEL_YOUT_H)/187.62;
		
		if(AY<86)
		{
			USART_Transmit('1');
			//UCSRB=0X90;        	//关发送使能
		}
		
		else 
		{
			USART_Transmit('0');
		}
		/*else
		{
			sent('2');
			//UCSRB=0X90;			//关发送使能
			if(AX<45 || AY<45)
			{
				UCSRB=0X98;		//打开发送使能
			}
		}*/
		
	}
	
}
Exemplo n.º 5
0
int main(void)
{	
	unsigned char key;
	Sys_Clock_Init(); 		 
	SysTick_Configuration();//Sys定时器		
 	USART_Configuration();	//配置串口

	NVIC_Configuration(); 	//中断配置

//	sys_power_on();//开启系统电源
	LED_Init();		//指示灯
//	KEY_Init();		//按键

	USART1_Puts("this is a uart test!\n"); 

	
	CheckRTC();	   	//2.RTC
	LED2_OFF();

	while (1)
	{
		LED1_OFF();delay_nms(3000);
		LED1_ON();		delay_nms(100);
	  key=KEY_Scan();
		if(key==1)
		{LED2_ON();		}
// 		
// 		 if(mode==0)	  //显示时间
// 		 {
		 if(RTC_1S==TRUE)
			{
				RTC_1S=FALSE;
				UpdateRTC();
			}
// 		}

	}						                                                                         
}
Exemplo n.º 6
0
/*******************************
主程序
*******************************/
void main(void)
{	
	unsigned char i;
	float  lux_data;                   //光数据   
	 
	 delay_nms(10);                    //lcd上电延时
	 LCD_init();                       //lcd初始化
     i=I2C_Write(0x01);                //BH1750 初始化            
	 delay_nms(10);          
	while(1){                          //循环   
	 i=I2C_Write(0x01);                //power on
	 i=I2C_Write(0x10);                //H- resolution mode
	 TWCR=0;                           //释放引脚
     delay_nms(180);                   //大约180ms
	   if(i==0){
	     lux_data=I2C_Read();          //从iic总线读取数值	
		 lux_data=(float)lux_data/1.2; //pdf文档第7页
	     conversion(lux_data);         //数据转换出个,十,百,千 位       
		 LCD_write_string(7,0,display);//显示数值,从第9列开始   
	   }  

    }
}
Exemplo n.º 7
0
void Turn(int speed)
	{
 
              GPIO_Write(GPIOD,GPIO_Pin_12);
              delay_nms(speed);
              GPIO_Write(GPIOD,GPIO_Pin_12| GPIO_Pin_13);
              delay_nms(speed);
              GPIO_Write(GPIOD,GPIO_Pin_13);
              delay_nms(speed);
              GPIO_Write(GPIOD,GPIO_Pin_14|GPIO_Pin_13);
              delay_nms(speed);
              GPIO_Write(GPIOD,GPIO_Pin_14);
              delay_nms(speed);
              GPIO_Write(GPIOD,GPIO_Pin_14|GPIO_Pin_15);
              delay_nms(speed);
              GPIO_Write(GPIOD,GPIO_Pin_15);
              delay_nms(speed);
              GPIO_Write(GPIOD,GPIO_Pin_15|GPIO_Pin_12);
              delay_nms(speed);
}
Exemplo n.º 8
0
int main()
{
     __disable_irq();


    // ------------------------------------------------------------------ 
    // Desc: System Clk Config
    //
    //  HCLK = PCLK2 = SYSCLK = 72M 
    //  PCLK1 = 36M
    // ------------------------------------------------------------------ 
     SystemInit();
     // SysTick_Config(SystemCoreClock / 1000);

#if 0 
     // ------------------------------------------------------------------ 
     // Desc: CLK OUTPUT for measure
     // ------------------------------------------------------------------ 

     //PA8 alternate mode
     GPIO_InitTypeDef        GPIO_InitStructure;

     RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);

     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
     GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
     GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
     GPIO_Init(GPIOA, &GPIO_InitStructure);

     GPIO_PinAFConfig(GPIOA, GPIO_PinSource8, GPIO_AF_0);    

     RCC_MCOConfig(RCC_MCOSource_PLLCLK,RCC_MCOPrescaler_1);
     // while(1);
#endif


     // ------------------------------------------------------------------ 
     // Desc: Debug 
     // ------------------------------------------------------------------ 
     DebugInit();
     // d_printf("UART debug Init OK\r\n");

     // ------------------------------------------------------------------ 
     // Desc: ILX511 CLK ON
     // ------------------------------------------------------------------ 
#if 1
     {
         GPIO_InitTypeDef        GPIO_InitStructure;
         RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);

         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
         GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
         GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
         GPIO_Init(GPIOB, &GPIO_InitStructure);
     }
#endif

#if 0
     ILX_Init();
     __enable_irq();
     ILX_CLKOn();
     delay_nms(50);//CCD power up

     ConvertOn();
#endif


#if 0

     d_printf("\r\n-------------------\r\n");
     {
         uint32_t i;
         for(i=32;i<2048+32;i++)
             d_printf("0x%04X ",data[i]);

     }
#endif


#if 0
    USBInit();
#endif

#if 0
    while (1)
    {
        if (bDeviceState == CONFIGURED)
        {
            CDC_Receive_DATA();
            if (Receive_length  != 0)
            {
                if (packet_sent == 1)
                    CDC_Send_DATA ((unsigned char*)Receive_Buffer,Receive_length);
                Receive_length = 0;
            }
        }
    }
#endif

     while(1);

    return 0;
}
Exemplo n.º 9
0
//land
void alt_land(void)
{
	MODE_INPUT = MID_INPUT;//altitude hold mode
	THROTTLE_INPUT = THROTTLE_DOWN;
	delay_nms(3000);
}
Exemplo n.º 10
0
//lock pixhawk  min_yaw_input
void lock_pixhawk(void)
{
	 YAW_INPUT = MIN_INPUT;
	 delay_nms(5000);
	 YAW_INPUT = MID_INPUT;
}
Exemplo n.º 11
0
void TFT_Init_Code(void)
{
	u8 id=0;
	
	TFT_SPI_Init();
	delay_nms(6); 
	
	//Set_EXTC
	SPI_SET_CMD(0xB9);
	SPI_SET_DATA(0xFF);
	SPI_SET_DATA(0x83);
	SPI_SET_DATA(0x63);
	
	//Set_POWER
	SPI_SET_CMD(0xB1);
	SPI_SET_DATA(0x81);
	SPI_SET_DATA(0x30);
	SPI_SET_DATA(0x07);
	SPI_SET_DATA(0x34);
	SPI_SET_DATA(0x02);
	SPI_SET_DATA(0x13);
	SPI_SET_DATA(0x11);
	SPI_SET_DATA(0x00);
	SPI_SET_DATA(0x3A);
	SPI_SET_DATA(0x42);
	SPI_SET_DATA(0x3F);
	SPI_SET_DATA(0x3F);

	//Sleep Out
	SPI_SET_CMD(0x11);
	delay_nms(120);
	
	//Set COLMOD
	SPI_SET_CMD(0x3A);
	SPI_SET_DATA(0x70);
	
	//Set_RGBIF
	SPI_SET_CMD(0xB3);
	SPI_SET_DATA(0x01);
	
	//Set_CYC
	SPI_SET_CMD(0xB4);
	SPI_SET_DATA(0x08);
	SPI_SET_DATA(0x12);
	SPI_SET_DATA(0x72);
	SPI_SET_DATA(0x12);
	SPI_SET_DATA(0x06);
	SPI_SET_DATA(0x03);
	SPI_SET_DATA(0x54);
	SPI_SET_DATA(0x03);
	SPI_SET_DATA(0x4E);
	SPI_SET_DATA(0x00);
	SPI_SET_DATA(0x00);

	//Set_PTBA
	SPI_SET_CMD(0xBF);
	SPI_SET_DATA(0x00);
	SPI_SET_DATA(0x10);
	
	//Set_VCOM
	SPI_SET_CMD(0xB6);
	SPI_SET_DATA(0x0E);
	
	//Set_PANEL
	SPI_SET_CMD(0xCC);
	SPI_SET_DATA(0x03);
	delay_nms(5);

	//Set Gamma 2.2
	SPI_SET_CMD(0xE0);
	SPI_SET_DATA(0x00);
	SPI_SET_DATA(0x80);
	SPI_SET_DATA(0x00);
	SPI_SET_DATA(0x8C);
	SPI_SET_DATA(0x13);
	SPI_SET_DATA(0xA7);
	SPI_SET_DATA(0x05);
	SPI_SET_DATA(0x0D);
	SPI_SET_DATA(0x10);
	SPI_SET_DATA(0xD4);
	SPI_SET_DATA(0x17);
	SPI_SET_DATA(0x55);
	SPI_SET_DATA(0x16);
	SPI_SET_DATA(0x07);
	SPI_SET_DATA(0x03);
	SPI_SET_DATA(0x00);
	SPI_SET_DATA(0x80);
	SPI_SET_DATA(0x00);
	SPI_SET_DATA(0x8C);
	SPI_SET_DATA(0x13);
	SPI_SET_DATA(0xA7);
	SPI_SET_DATA(0x05);
	SPI_SET_DATA(0x0D);
	SPI_SET_DATA(0x10);
	SPI_SET_DATA(0xD4);
	SPI_SET_DATA(0x17);
	SPI_SET_DATA(0x55);
	SPI_SET_DATA(0x16);
	SPI_SET_DATA(0x07);
	SPI_SET_DATA(0x03);
	delay_nms(5);

	//Display On
	SPI_SET_CMD(0x21);    //一定要加,開始沒有加顯示反色
	SPI_SET_CMD(0x29);
	
	SPI_SET_CMD(0x36);    //改變R B 色,字符正反
	SPI_SET_DATA(0x02);    
}