From 9e33675bec4dc292eafcfe43bd5349525948059e Mon Sep 17 00:00:00 2001 From: Mika Tuupola Date: Mon, 17 Oct 2011 23:34:41 +0300 Subject: [PATCH] Add pin_toggle() macro. --- arduino_lite/main.c | 3 ++- arduino_lite/pins.h | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/arduino_lite/main.c b/arduino_lite/main.c index 192d04f..1cca5db 100644 --- a/arduino_lite/main.c +++ b/arduino_lite/main.c @@ -74,7 +74,8 @@ int main(void) { while (1) { /* Blink led by toggling state of PORTB5 (Arduino digital 13). */ - PORTB ^= _BV(PORTB5); + //PORTB ^= _BV(PORTB5); + pin_toggle(13); value = digital_read(2); printf("%d", value); diff --git a/arduino_lite/pins.h b/arduino_lite/pins.h index 274b592..08abf0b 100644 --- a/arduino_lite/pins.h +++ b/arduino_lite/pins.h @@ -527,6 +527,7 @@ //#define _D_READ(port_id, msk) ((PORTID_TO_INPUT_REG(port_id)) & (msk)) #define _D_READ(port_id, msk) (((PORTID_TO_INPUT_REG(port_id)) & (msk)) != 0 ? 1 : 0) +#define _D_TOGGLE(port_id, msk) PORTID_TO_OUTPUT_REG(port_id) ^= (msk) /* * * NOTICE: for pins at timer0A/0B, @@ -560,6 +561,7 @@ #define pin_mode(pin, mode) SET_##mode(pin) #define pin_pullup(pin, val) D_WRITE_##val(pin) +#define pin_toggle(pin) EXPAND_WRAPPER(_D_TOGGLE, ARDUINOPIN_TO_PORTID(pin), ARDUINOPIN_TO_PORTMSK(pin) ) #endif /* PINS_H */