mirror of
https://github.com/ArduPilot/ardupilot
synced 2025-01-07 08:28:30 -04:00
73be185414
moved ground start to first arming added ground start flag moved throttle_integrator to 50hz loop CAMERA_STABILIZER deprecated - now always on renamed current logging bit mask to match APM added MA filter to PID - D term Adjusted PIDs based on continued testing and new PID filter added MASK_LOG_SET_DEFAULTS to match APM moved some stuff out of ground start into system start where it belonged Added slower Yaw gains for DCM when the copter is in the air changed camera output to be none scaled PWM fixed bug where ground_temperature was unfiltered shortened Baro startup time fixed issue with Nav_WP integrator not being reset RTL no longer yaws towards home Circle mode for flying a 10m circle around the point where it was engaged. - Not tested at all! Consider Circle mode as alpha. git-svn-id: https://arducopter.googlecode.com/svn/trunk@2966 f9c3cf11-9bcb-44bc-f272-b75c42450872
121 lines
2.2 KiB
Plaintext
121 lines
2.2 KiB
Plaintext
static void update_lights()
|
|
{
|
|
switch(led_mode){
|
|
case NORMAL_LEDS:
|
|
update_motor_light();
|
|
update_GPS_light();
|
|
break;
|
|
|
|
case AUTO_TRIM_LEDS:
|
|
dancing_light();
|
|
break;
|
|
}
|
|
}
|
|
|
|
static void update_GPS_light(void)
|
|
{
|
|
// GPS LED on if we have a fix or Blink GPS LED if we are receiving data
|
|
// ---------------------------------------------------------------------
|
|
switch (g_gps->status()){
|
|
|
|
case(2):
|
|
digitalWrite(C_LED_PIN, HIGH); //Turn LED C on when gps has valid fix.
|
|
break;
|
|
|
|
case(1):
|
|
if (g_gps->valid_read == true){
|
|
GPS_light = !GPS_light; // Toggle light on and off to indicate gps messages being received, but no GPS fix lock
|
|
if (GPS_light){
|
|
digitalWrite(C_LED_PIN, LOW);
|
|
}else{
|
|
digitalWrite(C_LED_PIN, HIGH);
|
|
}
|
|
g_gps->valid_read = false;
|
|
}
|
|
break;
|
|
|
|
default:
|
|
digitalWrite(C_LED_PIN, LOW);
|
|
break;
|
|
}
|
|
}
|
|
|
|
static void update_motor_light(void)
|
|
{
|
|
if(motor_armed == false){
|
|
motor_light = !motor_light;
|
|
|
|
// blink
|
|
if(motor_light){
|
|
digitalWrite(A_LED_PIN, HIGH);
|
|
}else{
|
|
digitalWrite(A_LED_PIN, LOW);
|
|
}
|
|
}else{
|
|
if(!motor_light){
|
|
motor_light = true;
|
|
digitalWrite(A_LED_PIN, HIGH);
|
|
}
|
|
}
|
|
}
|
|
|
|
static void dancing_light()
|
|
{
|
|
static byte step;
|
|
|
|
if (step++ == 3)
|
|
step = 0;
|
|
|
|
switch(step)
|
|
{
|
|
case 0:
|
|
digitalWrite(C_LED_PIN, LOW);
|
|
digitalWrite(A_LED_PIN, HIGH);
|
|
break;
|
|
|
|
case 1:
|
|
digitalWrite(A_LED_PIN, LOW);
|
|
digitalWrite(B_LED_PIN, HIGH);
|
|
break;
|
|
|
|
case 2:
|
|
digitalWrite(B_LED_PIN, LOW);
|
|
digitalWrite(C_LED_PIN, HIGH);
|
|
break;
|
|
}
|
|
}
|
|
static void clear_leds()
|
|
{
|
|
digitalWrite(A_LED_PIN, LOW);
|
|
digitalWrite(B_LED_PIN, LOW);
|
|
digitalWrite(C_LED_PIN, LOW);
|
|
}
|
|
|
|
#if MOTOR_LEDS == 1
|
|
static void update_motor_leds(void)
|
|
{
|
|
// blink rear
|
|
static bool blink = false;
|
|
|
|
if (blink){
|
|
digitalWrite(RE_LED, HIGH);
|
|
digitalWrite(FR_LED, HIGH);
|
|
digitalWrite(RI_LED, LOW);
|
|
digitalWrite(LE_LED, LOW);
|
|
}else{
|
|
digitalWrite(RE_LED, LOW);
|
|
digitalWrite(FR_LED, LOW);
|
|
digitalWrite(RI_LED, HIGH);
|
|
digitalWrite(LE_LED, HIGH);
|
|
}
|
|
|
|
blink = !blink;
|
|
|
|
// the variable low_batt is here to let people know the voltage is low or the pack capacity is finished
|
|
// I don't know what folks want here.
|
|
// low_batt
|
|
}
|
|
#endif
|
|
|
|
|