/** * @file hal_buttons.c * * Copyright 2010 Texas Instruments, Inc. ***************************************************************************/ #include "msp430.h" #include "hal_MSP-EXP430F5438.h" /**********************************************************************//** * @brief Initializes the GPIO ports to act as buttons. * * @param buttonsMask The mask that specifies the button pins. * * @return none *************************************************************************/ void halButtonsInit(unsigned char buttonsMask) { BUTTON_PORT_OUT |= buttonsMask; BUTTON_PORT_DIR &= ~buttonsMask; BUTTON_PORT_REN |= buttonsMask; BUTTON_PORT_SEL &= ~buttonsMask; } /**********************************************************************//** * @brief Returns LOW for the buttons pressed. * * @param none * * @return The buttons that have been pressed, identified by a bit = 0. *************************************************************************/ unsigned char halButtonsPressed(void) { unsigned char value; value = BUTTON_PORT_IN; return (0xFF - value); //Low==ButtonPressed } /**********************************************************************//** * @brief Enables button interrupt(s) with low to high transitions. * * @param buttonIntEnableMask The button pin(s) for which the interrupt(s) * should be enabled. * * @return none *************************************************************************/ void halButtonsInterruptEnable(unsigned char buttonIntEnableMask) { BUTTON_PORT_IES &= ~buttonIntEnableMask; BUTTON_PORT_IFG &= ~buttonIntEnableMask; BUTTON_PORT_IE |= buttonIntEnableMask; } /**********************************************************************//** * @brief Disables button interrupts * * @param buttonIntEnableMask The button pin(s) for which the interrupt(s) * should be disabled. * * @return none *************************************************************************/ void halButtonsInterruptDisable(unsigned char buttonIntEnableMask) { BUTTON_PORT_IE &= ~buttonIntEnableMask; } /**********************************************************************//** * @brief Clears the button GPIO settings, disables the buttons. * * @param none *************************************************************************/ void halButtonsShutDown() { //All output, outputting 0s BUTTON_PORT_OUT &= ~(BUTTON_ALL); BUTTON_PORT_DIR |= BUTTON_ALL; }