Finally rename flight.c/.h to pid.c/.h. Cleanup some dependencies.
[betaflight.git] / src / main / io / statusindicator.c
blobf9d2c74be20cd3da2147f0da0848db6b093e69c8
1 /*
2 * This file is part of Cleanflight.
4 * Cleanflight is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
9 * Cleanflight is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with Cleanflight. If not, see <http://www.gnu.org/licenses/>.
18 #include <stdbool.h>
19 #include <stdint.h>
21 #include "platform.h"
23 #include "drivers/system.h"
24 #include "drivers/gpio.h"
25 #include "drivers/light_led.h"
26 #include "drivers/sound_beeper.h"
28 #include "statusindicator.h"
30 void blinkLedAndSoundBeeper(uint8_t num, uint8_t wait, uint8_t repeat)
32 uint8_t i, r;
34 for (r = 0; r < repeat; r++) {
35 for (i = 0; i < num; i++) {
36 LED0_TOGGLE; // switch LEDPIN state
37 BEEP_ON;
38 delay(wait);
39 BEEP_OFF;
41 delay(60);
46 static uint32_t warningLedTimer = 0;
48 void enableWarningLed(uint32_t currentTime)
50 if (warningLedTimer != 0) {
51 return; // already enabled
53 warningLedTimer = currentTime + 500000;
54 LED0_ON;
57 void disableWarningLed(void)
59 warningLedTimer = 0;
60 LED0_OFF;
63 void updateWarningLed(uint32_t currentTime)
65 if (warningLedTimer && (int32_t)(currentTime - warningLedTimer) >= 0) {
66 LED0_TOGGLE;
67 warningLedTimer = warningLedTimer + 500000;