altos/telefire: Make sure armed alarm goes off on time
[fw/altos] / src / drivers / ao_pad.c
index 55e6289d4108ca64ad0916c49e16ba9200206350..120ce5398cfdd4162a187c1c9277bffb667ae43f 100644 (file)
@@ -139,6 +139,9 @@ ao_pad_monitor(void)
                        prev = cur;
                }
 
                        prev = cur;
                }
 
+               if (ao_pad_armed && (int16_t) (ao_time() - ao_pad_arm_time) > AO_PAD_ARM_TIME)
+                       ao_pad_armed = 0;
+
                if (ao_pad_armed) {
                        if (sample & 2)
                                ao_beep(AO_BEEP_HIGH);
                if (ao_pad_armed) {
                        if (sample & 2)
                                ao_beep(AO_BEEP_HIGH);
@@ -197,9 +200,6 @@ ao_pad(void)
                PRINTD ("tick %d box %d cmd %d channels %02x\n",
                        command.tick, command.box, command.cmd, command.channels);
 
                PRINTD ("tick %d box %d cmd %d channels %02x\n",
                        command.tick, command.box, command.cmd, command.channels);
 
-               if (ao_pad_armed && (int16_t) (ao_time() - ao_pad_arm_time) > AO_PAD_ARM_TIME)
-                       ao_pad_armed = 0;
-
                switch (command.cmd) {
                case AO_LAUNCH_ARM:
                        if (command.box != ao_pad_box) {
                switch (command.cmd) {
                case AO_LAUNCH_ARM:
                        if (command.box != ao_pad_box) {