- #define BUZZER_ON \
- do { \
- cpuflags_t _flags; \
- DISABLE_IRQSAVE(_flags); \
- PORTG |= BV(PORTG0); \
- ENABLE_IRQRESTORE(_flags); \
- } while (0)
-
- #define BUZZER_OFF \
- do { \
- cpuflags_t _flags; \
- DISABLE_IRQSAVE(_flags); \
- PORTG &= ~BV(PORTG0); \
- ENABLE_IRQRESTORE(_flags); \
- } while (0)
-
- #define BUZZER_INIT \
- do { \
- cpuflags_t _flags; \
- DISABLE_IRQSAVE(_flags); \
- PORTG &= ~BV(PORTG0); \
- DDRG |= BV(PORTG0); \
- ENABLE_IRQRESTORE(_flags); \
- } while (0)
+ #define BUZZER_ON ATOMIC(PORTG |= BV(PG0))
+ #define BUZZER_OFF ATOMIC(PORTG &= ~BV(PG0))
+ #define BUZZER_INIT ATOMIC(PORTG &= ~BV(PG0); DDRG |= BV(PG0);)
+ /*\}*/