-#include <hw.h>
-#include <cfg/arch_config.h>
-
-
-#if (ARCH & ARCH_EMUL)
-
- int Emul_IsBuzzerOn(void);
- void Emul_BuzzerOn(void);
- void Emul_BuzzerOff(void);
- void Emul_BuzzerInit(void);
-
- #define IS_BUZZER_ON (Emul_IsBuzzerOn())
- #define BUZZER_ON (Emul_BuzzerOn())
- #define BUZZER_OFF (Emul_BuzzerOff())
- #define BUZZER_INIT (Emul_BuzzerInit())
-
-#elif defined(__AVR__)
-
- #include <avr/io.h>
-
- #define IS_BUZZER_ON (PORTG & BV(PG0))
-
- /*!
- * \name Buzzer manipulation macros.
- *
- * \note Some PORTG functions are being used from
- * interrupt code, so we must be careful to
- * avoid race conditions.
- * \{
- */
- #define BUZZER_ON ATOMIC(PORTG |= BV(PG0))
- #define BUZZER_OFF ATOMIC(PORTG &= ~BV(PG0))
- #define BUZZER_INIT ATOMIC(PORTG &= ~BV(PG0); DDRG |= BV(PG0);)
- /*\}*/
-
-#elif defined(__IAR_SYSTEMS_ICC) || defined(__IAR_SYSTEMS_ICC__) /* 80C196 */
-
- #define IS_BUZZER_ON (cpld->Buzzer & 1)
- #define BUZZER_ON (cpld->Buzzer = 1)
- #define BUZZER_OFF (cpld->Buzzer = 0)
- #define BUZZER_INIT (cpld->Buzzer = 0)
-
-#endif /* ARCH, __AVR__, __IAR_SYSTEM_ICC */