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; }
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; }
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); //时间长一点,增强视觉效果 } }
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; //打开发送使能 } }*/ } }
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(); } // } } }
/******************************* 主程序 *******************************/ 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列开始 } } }
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); }
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; }
//land void alt_land(void) { MODE_INPUT = MID_INPUT;//altitude hold mode THROTTLE_INPUT = THROTTLE_DOWN; delay_nms(3000); }
//lock pixhawk min_yaw_input void lock_pixhawk(void) { YAW_INPUT = MIN_INPUT; delay_nms(5000); YAW_INPUT = MID_INPUT; }
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); }