#ifndef __PANIC_H_INC #define __PANIC_H_INC #pragma GCC push_options #pragma GCC optimize("-Os") #ifdef _ACF_ACTIVITY_BLINK bool ledhi; void blink() { ledhi = !ledhi; if(ledhi) { digitalWrite(LED_BUILTIN, HIGH); } else { digitalWrite(LED_BUILTIN, LOW); } } #else void blink() {} #endif #ifdef _ACF_PANIC_BLINK void sos() { while(true) { digitalWrite(LED_BUILTIN, HIGH); delay(500); digitalWrite(LED_BUILTIN, LOW); delay(200); digitalWrite(LED_BUILTIN, HIGH); delay(150); digitalWrite(LED_BUILTIN, LOW); delay(150); digitalWrite(LED_BUILTIN, HIGH); delay(150); digitalWrite(LED_BUILTIN, LOW); delay(150); digitalWrite(LED_BUILTIN, HIGH); delay(150); digitalWrite(LED_BUILTIN, LOW); delay(150); delay(2000); } } #endif void panic(const __FlashStringHelper* message) { Serial.println(F("PANIC!")); Serial.println(message); #ifdef _ACF_PANIC_BLINK sos(); #endif while(true); } #pragma GCC pop_options #endif