summaryrefslogtreecommitdiff
path: root/src/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel')
-rw-r--r--src/kernel/ao_report.c10
-rw-r--r--src/kernel/ao_telemetry.c2
2 files changed, 5 insertions, 7 deletions
diff --git a/src/kernel/ao_report.c b/src/kernel/ao_report.c
index 5314fc8f..f4253b3d 100644
--- a/src/kernel/ao_report.c
+++ b/src/kernel/ao_report.c
@@ -246,15 +246,15 @@ ao_report_continuity(void) __reentrant
void
ao_report(void)
{
- ao_report_state = ao_flight_state;
for(;;) {
+ ao_report_state = ao_flight_state;
#if HAS_BATTERY_REPORT
- if (ao_flight_state == ao_flight_startup)
+ if (ao_report_state == ao_flight_startup)
ao_report_battery();
else
#endif
ao_report_beep();
- if (ao_flight_state == ao_flight_landed) {
+ if (ao_report_state == ao_flight_landed) {
ao_report_altitude();
#if HAS_FLIGHT
ao_delay(AO_SEC_TO_TICKS(5));
@@ -262,7 +262,7 @@ ao_report(void)
#endif
}
#if HAS_IGNITE_REPORT
- if (ao_flight_state == ao_flight_idle)
+ if (ao_report_state == ao_flight_idle)
ao_report_continuity();
while (ao_flight_state == ao_flight_pad) {
uint8_t c;
@@ -272,10 +272,8 @@ ao_report(void)
pause(AO_MS_TO_TICKS(100));
}
#endif
-
while (ao_report_state == ao_flight_state)
ao_sleep(DATA_TO_XDATA(&ao_flight_state));
- ao_report_state = ao_flight_state;
}
}
diff --git a/src/kernel/ao_telemetry.c b/src/kernel/ao_telemetry.c
index 56bd715e..27306a34 100644
--- a/src/kernel/ao_telemetry.c
+++ b/src/kernel/ao_telemetry.c
@@ -518,7 +518,7 @@ ao_telemetry_set_interval(uint16_t interval)
};
ao_telemetry_desired_interval = interval;
- if (interval < min_interval[ao_config.radio_rate])
+ if (interval && interval < min_interval[ao_config.radio_rate])
interval = min_interval[ao_config.radio_rate];
#endif
ao_telemetry_interval = interval;