void Aircraft_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; // LCD #ifdef _DEBUG_WITH_LCD RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; GPIO_Init(GPIOD, &GPIO_InitStructure); GPIO_ResetBits(GPIOD , GPIO_Pin_7); //CS=0; LCD_Initializtion(); LCD_Clear(Blue); #endif // 捕获器 tim_throttle.mode_pwm_input(THROTTLE_PIN); tim_pitch.mode_pwm_input(PITCH_PIN); tim_yaw.mode_pwm_input(YAW_PIN); tim_roll.mode_pwm_input(ROLL_PIN); // 调度器 tim_sch.mode_sch(); // 接收机 receiver.stick_throttle_ = Stick(0.0502,0.0999,0,NEGATIVE_LOGIC); // 油门最高点,听到确认音 motor1 = Motor(PWM_FREQ,MAX_DUTY,MOTOR1_PWM_TIM,MOTOR1_PWM_CH,MOTOR1_PWM_PIN); motor2 = Motor(PWM_FREQ,MAX_DUTY,MOTOR2_PWM_TIM,MOTOR2_PWM_CH,MOTOR2_PWM_PIN); motor3 = Motor(PWM_FREQ,MAX_DUTY,MOTOR3_PWM_TIM,MOTOR3_PWM_CH,MOTOR3_PWM_PIN); motor4 = Motor(PWM_FREQ,MAX_DUTY,MOTOR4_PWM_TIM,MOTOR4_PWM_CH,MOTOR4_PWM_PIN); // 电调接上电池,等待2S Delay(DELAY_1S); Delay(DELAY_1S); // 以防万一,再次延迟2S // Delay(DELAY_1S); // Delay(DELAY_1S); // 油门推到最低,等待1S motor1.set_duty(MIN_DUTY); motor2.set_duty(MIN_DUTY); motor3.set_duty(MIN_DUTY); motor4.set_duty(MIN_DUTY); Delay(DELAY_1S); Delay(DELAY_1S); Delay(DELAY_1S); // 油门最低点确认音,可以起飞 // LED4 RCC_AHB1PeriphClockCmd(LED4_GPIO_CLK, ENABLE); GPIO_InitStructure.GPIO_Pin = LED4_PIN; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT; GPIO_InitStructure.GPIO_OType = GPIO_OType_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz; GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL; GPIO_Init(LED4_GPIO_PORT, &GPIO_InitStructure); GPIO_ResetBits(LED4_GPIO_PORT,LED4_PIN); init_flag = 1; }
//------------------------------------------ void CC4Projectile::HandleEvent(const SGameObjectEvent &event) { if(m_destroying) return; CProjectile::HandleEvent(event); if(event.event == eGFE_OnCollision) { EventPhysCollision *pCollision = (EventPhysCollision *)event.ptr; if(gEnv->bServer && !m_stuck && !m_notStick) Stick(pCollision); } else if(event.event==eCGE_PostFreeze) m_frozen=event.param!=0; }
bool base_window::onMoved(void) { if(m_parent) { Stick(); const Rect& pr = m_parent->getArea(); Rect area(m_area); area.offset(pr.getPosition()); m_alignmentRect.m_left = area.m_left - pr.m_left; m_alignmentRect.m_top = area.m_top - pr.m_top; m_alignmentRect.m_right = pr.m_right - area.m_right; m_alignmentRect.m_bottom = pr.m_bottom - area.m_bottom; } invalidate(); EventArgs a; a.name = "On_Moved"; callHandler(&a); return true; }