Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* low-level macros for pin i/o manipulation */
- #define _INPUT(port, pin) DDR ## port &= ~_BV(pin)
- #define _OUTPUT(port, pin) DDR ## port |= _BV(pin)
- #define _CLEAR(port, pin) PORT ## port &= ~_BV(pin)
- #define _SET(port, pin) PORT ## port |= _BV(pin)
- #define _TOGGLE(port, pin) PORT ## port ^= _BV(pin)
- #define _READ(port, pin) ((PIN ## port & _BV(pin)) ? 1 : 0)
- /* high-level macros for pin i/o */
- #define INPUT(x) _INPUT(x)
- #define OUTPUT(x) _OUTPUT(x)
- #define CLEAR(x) _CLEAR(x)
- #define SET(x) _SET(x)
- #define TOGGLE(x) _TOGGLE(x)
- #define READ(x) _READ(x)
- #define PULLUP_ON(x) do { _INPUT(x); _SET(x); } while(0)
- #define PULLUP_OFF(x) do { _INPUT(x); _CLEAR(x); } while(0)
- #define LCD_D4 A,4
- #define LCD_D5 A,5
- #define LCD_D6 A,6
- #define LCD_D7 A,7
- #define LCD_EN A,1
- #define LCD_RW A,2
- #define LCD_RS A,3
- #define LCD_PWR A,0
- #define LED0 C,7
- #define WIEG_LED0 B,4
- #define WIEG_LED1 B,5
- #define WIEG_BUZZER0 B,6
- #define WIEG_BUZZER1 B,7
- ...
- void foo(void)
- {
- OUTPUT(LED0); SET(LED0);
- PULLUP_ON(KEY_UP);
- while (READ(KEY_UP)) ;
- CLEAR(LED0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement