]> git.sur5r.net Git - freertos/blob - Demo/MSP430X_MSP430F5438_IAR/MSP-EXP430F5438_HAL/hal_buttons.c
Start to re-arrange files to include FreeRTOS+ in main download.
[freertos] / Demo / MSP430X_MSP430F5438_IAR / MSP-EXP430F5438_HAL / hal_buttons.c
1 /** \r
2  * @file  hal_buttons.c\r
3  * \r
4  * Copyright 2010 Texas Instruments, Inc.\r
5 ***************************************************************************/\r
6 #include "msp430.h"\r
7 #include "hal_MSP-EXP430F5438.h"\r
8 \r
9 /**********************************************************************//**\r
10  * @brief  Initializes the GPIO ports to act as buttons.\r
11  * \r
12  * @param  buttonsMask The mask that specifies the button pins.\r
13  * \r
14  * @return none\r
15  *************************************************************************/   \r
16 void halButtonsInit(unsigned char buttonsMask)\r
17 {  \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
22 }\r
23 \r
24 /**********************************************************************//**\r
25  * @brief  Returns LOW for the buttons pressed.\r
26  * \r
27  * @param  none\r
28  * \r
29  * @return The buttons that have been pressed, identified by a bit = 0. \r
30  *************************************************************************/\r
31 unsigned char halButtonsPressed(void)\r
32 {\r
33   unsigned char value;\r
34   value = BUTTON_PORT_IN;\r
35   return (0xFF - value);                    //Low==ButtonPressed\r
36 }\r
37 \r
38 /**********************************************************************//**\r
39  * @brief  Enables button interrupt(s) with low to high transitions.\r
40  * \r
41  * @param  buttonIntEnableMask The button pin(s) for which the interrupt(s) \r
42  *                             should be enabled.\r
43  * \r
44  * @return none\r
45  *************************************************************************/\r
46 void halButtonsInterruptEnable(unsigned char buttonIntEnableMask)\r
47 {\r
48   BUTTON_PORT_IES &= ~buttonIntEnableMask;\r
49   BUTTON_PORT_IFG &= ~buttonIntEnableMask;\r
50   BUTTON_PORT_IE |= buttonIntEnableMask;\r
51 }\r
52 \r
53 /**********************************************************************//**\r
54  * @brief  Disables button interrupts \r
55  * \r
56  * @param  buttonIntEnableMask The button pin(s) for which the interrupt(s)\r
57  *                             should be disabled. \r
58  * \r
59  * @return none\r
60  *************************************************************************/\r
61 void halButtonsInterruptDisable(unsigned char buttonIntEnableMask)\r
62 {\r
63   BUTTON_PORT_IE &= ~buttonIntEnableMask;\r
64 }\r
65 \r
66 /**********************************************************************//**\r
67  * @brief  Clears the button GPIO settings, disables the buttons. \r
68  * \r
69  * @param  none\r
70  *************************************************************************/\r
71 void halButtonsShutDown()\r
72 {\r
73   //All output, outputting 0s\r
74   BUTTON_PORT_OUT &= ~(BUTTON_ALL);\r
75   BUTTON_PORT_DIR |= BUTTON_ALL;             \r
76 }\r