2 * @file hal_buttons.c
\r
4 * Copyright 2010 Texas Instruments, Inc.
\r
5 ***************************************************************************/
\r
7 #include "hal_MSP-EXP430F5438.h"
\r
9 /**********************************************************************//**
\r
10 * @brief Initializes the GPIO ports to act as buttons.
\r
12 * @param buttonsMask The mask that specifies the button pins.
\r
15 *************************************************************************/
\r
16 void halButtonsInit(unsigned char buttonsMask)
\r
18 BUTTON_PORT_OUT |= buttonsMask;
\r
19 BUTTON_PORT_DIR &= ~buttonsMask;
\r
20 BUTTON_PORT_REN |= buttonsMask;
\r
21 BUTTON_PORT_SEL &= ~buttonsMask;
\r
24 /**********************************************************************//**
\r
25 * @brief Returns LOW for the buttons pressed.
\r
29 * @return The buttons that have been pressed, identified by a bit = 0.
\r
30 *************************************************************************/
\r
31 unsigned char halButtonsPressed(void)
\r
33 unsigned char value;
\r
34 value = BUTTON_PORT_IN;
\r
35 return (0xFF - value); //Low==ButtonPressed
\r
38 /**********************************************************************//**
\r
39 * @brief Enables button interrupt(s) with low to high transitions.
\r
41 * @param buttonIntEnableMask The button pin(s) for which the interrupt(s)
\r
42 * should be enabled.
\r
45 *************************************************************************/
\r
46 void halButtonsInterruptEnable(unsigned char buttonIntEnableMask)
\r
48 BUTTON_PORT_IES &= ~buttonIntEnableMask;
\r
49 BUTTON_PORT_IFG &= ~buttonIntEnableMask;
\r
50 BUTTON_PORT_IE |= buttonIntEnableMask;
\r
53 /**********************************************************************//**
\r
54 * @brief Disables button interrupts
\r
56 * @param buttonIntEnableMask The button pin(s) for which the interrupt(s)
\r
57 * should be disabled.
\r
60 *************************************************************************/
\r
61 void halButtonsInterruptDisable(unsigned char buttonIntEnableMask)
\r
63 BUTTON_PORT_IE &= ~buttonIntEnableMask;
\r
66 /**********************************************************************//**
\r
67 * @brief Clears the button GPIO settings, disables the buttons.
\r
70 *************************************************************************/
\r
71 void halButtonsShutDown()
\r
73 //All output, outputting 0s
\r
74 BUTTON_PORT_OUT &= ~(BUTTON_ALL);
\r
75 BUTTON_PORT_DIR |= BUTTON_ALL;
\r