diff options
author | Daniel Friesel <derf@finalrewind.org> | 2018-01-11 08:55:15 +0100 |
---|---|---|
committer | Daniel Friesel <derf@finalrewind.org> | 2018-01-11 08:55:15 +0100 |
commit | 85e11a1a460f08f1791a03a6bb95c976b7117ab8 (patch) | |
tree | de254068771592db8da8c06d641e9f09094efabe /include | |
parent | 044ff708d979cb5c17c1b2e0dafb6be0ccecab43 (diff) |
use inline functions for most gpio
Diffstat (limited to 'include')
-rw-r--r-- | include/arduino-nano/driver/gpio.h | 16 | ||||
-rw-r--r-- | include/msp430fr5969lp/driver/gpio.h | 37 |
2 files changed, 45 insertions, 8 deletions
diff --git a/include/arduino-nano/driver/gpio.h b/include/arduino-nano/driver/gpio.h index 17bdfc8..6acf977 100644 --- a/include/arduino-nano/driver/gpio.h +++ b/include/arduino-nano/driver/gpio.h @@ -36,10 +36,18 @@ class GPIO { pd7 = 31 }; - void setup(); - void led_on(unsigned char id); - void led_off(unsigned char id); - void led_toggle(unsigned char id); + inline void setup() { + DDRB = _BV(PB5); + } + inline void led_on(unsigned char id) { + PORTB |= _BV(PB5); + } + inline void led_off(unsigned char id) { + PORTB &= ~_BV(PB5); + } + inline void led_toggle(unsigned char id) { + PINB = _BV(PB5); + } inline void input(unsigned char const pin) { if (pin < 8) { } else if (pin < 16) { diff --git a/include/msp430fr5969lp/driver/gpio.h b/include/msp430fr5969lp/driver/gpio.h index 177e7c5..7ac3ba3 100644 --- a/include/msp430fr5969lp/driver/gpio.h +++ b/include/msp430fr5969lp/driver/gpio.h @@ -1,16 +1,45 @@ #ifndef GPIO_H #define GPIO_H +#include <msp430.h> + class GPIO { private: GPIO(const GPIO ©); public: GPIO () {} - void setup(); - void led_on(unsigned char id); - void led_off(unsigned char id); - void led_toggle(unsigned char id); + inline void setup() { + P1OUT = 0; + P2OUT = 0; + P3OUT = 0; + P4OUT = 0; + P1DIR = BIT0; + P2DIR = 0; + P3DIR = 0; + P4DIR = BIT6; + } + inline void led_on(unsigned char id) { + if (id == 0) { + P1OUT |= BIT0; + } else { + P4OUT |= BIT6; + } + } + inline void led_off(unsigned char id) { + if (id == 0) { + P1OUT &= ~BIT0; + } else { + P4OUT &= ~BIT6; + } + } + inline void led_toggle(unsigned char id) { + if (id == 0) { + P1OUT ^= BIT0; + } else { + P4OUT ^= BIT6; + } + } }; extern GPIO gpio; |