From 85e11a1a460f08f1791a03a6bb95c976b7117ab8 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Thu, 11 Jan 2018 08:55:15 +0100 Subject: use inline functions for most gpio --- include/msp430fr5969lp/driver/gpio.h | 37 ++++++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-) (limited to 'include/msp430fr5969lp') 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 + 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; -- cgit v1.2.3