aboutsummaryrefslogtreecommitdiff
path: root/FanController/fan_controller/error.c
diff options
context:
space:
mode:
Diffstat (limited to 'FanController/fan_controller/error.c')
-rw-r--r--FanController/fan_controller/error.c47
1 files changed, 47 insertions, 0 deletions
diff --git a/FanController/fan_controller/error.c b/FanController/fan_controller/error.c
new file mode 100644
index 0000000..66ad2f9
--- /dev/null
+++ b/FanController/fan_controller/error.c
@@ -0,0 +1,47 @@
+/* Autor: Ján Sučan <jan@jansucan.sk>
+ *
+ * Zdrojove kody, ich casti a subory z nich vzniknute priamo alebo nepriamo
+ * (objektove subory, Intel Hex, ...) prosim nepouzivajte komercne, ani ako
+ * sucast komercnych diel. Vsetky ostatne pripady pouzitia su dovolene.
+ *
+ * Please don't use the source codes, their parts and files created from them
+ * directly or indirectly, (object files, Intel Hex files, ...) for commercial
+ * purposes, not even as a part of commercial products. All other use cases
+ * are allowed.
+ */
+
+#include <fan_controller/delay.h>
+#include <fan_controller/error.h>
+#include <fan_controller/hw/led.h>
+
+/** Pocet milisekund periody blikania LED pri chybe. Polovicu periody su LED zasvietene a polovicu zhasnute. */
+#define ERROR_BLINK_PERIOD_MS 1000U // ms
+
+/**
+ * @brief Funkcia pre indikaciu chyby blikanim LED.
+ *
+ * Blikaju vsetky zelene a cervena LED naraz. Tato funkcia
+ * sa vola pri detekcii zastavenia ventilatora ale aj pri
+ * lubovolnej dalsej chybe (napr. chyba argumentov nejakej
+ * funkcie). Spracovanie programu sa z tejto funkcie uz
+ * nedostane.
+ */
+void
+error(void)
+{
+ while (1)
+ {
+ // Zasvietit LED
+ led_min_green_on();
+ led_green_bar_show_by_mask(0xff);
+ led_red_on();
+ // Pockat
+ delay_ms(ERROR_BLINK_PERIOD_MS / 2);
+ // Zhasnut LED
+ led_min_green_off();
+ led_green_bar_show_by_mask(0x00);
+ led_red_off();
+ // Pockat
+ delay_ms(ERROR_BLINK_PERIOD_MS / 2);
+ }
+} \ No newline at end of file