TLC5940/pinouts/pin_functions.h
2014-06-08 15:34:11 -07:00

29 lines
1.2 KiB
C

#ifndef TLC_pin_functions_h
#define TLC_pin_functions_h
#if defined(__AVR__)
#define pulse_pin(port, pin) port |= _BV(pin); port &= ~_BV(pin)
#define set_pin(port, pin) port |= _BV(pin)
#define clear_pin(port, pin) port &= ~_BV(pin)
#define output_pin(ddr, pin) ddr |= _BV(pin)
#define pullup_pin(ddr, port, pin) ddr &= ~_BV(pin); port |= _BV(pin)
#elif defined(TEENSYDUINO)
#if F_CPU > 48000000
#define pulse_pin(port, pin) digitalWriteFast(pin, HIGH); asm("nop"); digitalWriteFast(pin, LOW)
#else
#define pulse_pin(port, pin) digitalWriteFast(pin, HIGH); digitalWriteFast(pin, LOW)
#endif
#define set_pin(port, pin) digitalWriteFast(pin, HIGH)
#define clear_pin(port, pin) digitalWriteFast(pin, LOW)
#define output_pin(ddr, pin) pinMode(pin, OUTPUT)
#define pullup_pin(ddr, port, pin) pinMode(pin, INPUT_PULLUP)
#else
#define pulse_pin(port, pin) digitalWrite(pin, HIGH); digitalWrite(pin, LOW)
#define set_pin(port, pin) digitalWrite(pin, HIGH)
#define clear_pin(port, pin) digitalWrite(pin, LOW)
#define output_pin(ddr, pin) pinMode(pin, OUTPUT)
#define pullup_pin(ddr, port, pin) pinMode(pin, INPUT_PULLUP)
#endif
#endif