1 //==============================================================================
2 // Copyright Meta Watch Ltd. - http://www.MetaWatch.org/
4 // Licensed under the Meta Watch License, Version 1.0 (the "License");
5 // you may not use this file except in compliance with the License.
6 // You may obtain a copy of the License at
8 // http://www.MetaWatch.org/licenses/license-1.0.html
10 // Unless required by applicable law or agreed to in writing, software
11 // distributed under the License is distributed on an "AS IS" BASIS,
12 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 // See the License for the specific language governing permissions and
14 // limitations under the License.
15 //==============================================================================
17 /******************************************************************************/
18 /*! \file hal_io_macros.c
20 * Separate the pin definitions for each board type from the macros
23 /******************************************************************************/
28 /******************************************************************************/
30 #define BT_CLK_REQ_CONIFIG_AS_INPUT() { \
31 BT_CLK_REQ_PDIR &= ~BT_CLK_REQ_PIN; \
34 #define BT_CLK_REQ_CONFIG_AS_OUTPUT_LOW() { \
35 BT_CLK_REQ_PDIR |= BT_CLK_REQ_PIN; \
36 BT_CLK_REQ_POUT &= ~BT_CLK_REQ_PIN; \
39 #define BT_IO1_CONFIG_AS_INPUT() { \
40 BT_IO1_PDIR &= ~BT_IO1_PIN; }
42 #define BT_IO1_CONFIG_AS_OUTPUT_LOW() { \
43 BT_IO1_PDIR |= BT_IO1_PIN; \
44 BT_IO1_POUT &= ~BT_IO1_PIN; \
47 #define BT_IO2_CONFIG_AS_INPUT() { \
48 BT_IO2_PDIR &= ~BT_IO2_PIN; \
51 #define BT_IO2_CONFIG_AS_OUTPUT_LOW() { \
52 BT_IO2_PDIR |= BT_IO2_PIN; \
53 BT_IO2_POUT &= ~BT_IO2_PIN; }
55 /******************************************************************************/
57 #define ACCELEROMETER_INT_ENABLE() { \
58 ACCELEROMETER_INT_PIFG &= ~ACCELEROMETER_INT_PIN; \
59 ACCELEROMETER_INT_PIE |= ACCELEROMETER_INT_PIN; \
62 #define ACCELEROMETER_INT_DISABLE() { \
63 ACCELEROMETER_INT_PIE &= ~ACCELEROMETER_INT_PIN; \
64 ACCELEROMETER_INT_PIFG &= ~ACCELEROMETER_INT_PIN; \
67 #define CONFIG_ACCELEROMETER_PINS() { \
68 ACCELEROMETER_SDA_PSEL |= ACCELEROMETER_SDA_PIN; \
69 ACCELEROMETER_SCL_PSEL |= ACCELEROMETER_SCL_PIN; \
70 ACCELEROMETER_INT_PDIR &= ~ACCELEROMETER_INT_PIN; \
73 /* only configuration 5 and later boards support turning on/off the power
74 * to the accelerometer
76 #define ENABLE_ACCELEROMETER_POWER() { \
77 ACCELEROMETER_POWER_PDIR |= ACCELEROMETER_POWER_PINS; \
78 ACCELEROMETER_POWER_POUT |= ACCELEROMETER_POWER_PINS; \
81 #define DISABLE_ACCELEROMETER_POWER() { \
82 ACCELEROMETER_POWER_PDIR |= ACCELEROMETER_POWER_PINS; \
83 ACCELEROMETER_POWER_POUT &= ~ACCELEROMETER_POWER_PINS; \
86 /******************************************************************************/
88 #define ENABLE_MUX_OUTPUT_CONTROL() { \
89 MUX_CONTROL1_PDIR |= MUX_CONTROL1_PIN; \
90 MUX_CONTROL2_PDIR |= MUX_CONTROL2_PIN; \
93 #define MUX_OUTPUT_OFF() { \
94 MUX_CONTROL1_POUT &= ~MUX_CONTROL1_PIN; \
95 MUX_CONTROL2_POUT &= ~MUX_CONTROL2_PIN; \
98 #define MUX_OUTPUT_SELECTS_SERIAL() { \
99 MUX_CONTROL1_POUT |= MUX_CONTROL1_PIN; \
100 MUX_CONTROL2_POUT &= ~MUX_CONTROL2_PIN; \
103 #define MUX_OUTPUT_SELECTS_GND() { \
104 MUX_CONTROL1_POUT &= ~MUX_CONTROL1_PIN; \
105 MUX_CONTROL2_POUT |= MUX_CONTROL2_PIN; \
108 #define MUX_OUTPUT_SELECTS_SPY() { \
109 MUX_CONTROL1_POUT |= MUX_CONTROL1_PIN; \
110 MUX_CONTROL2_POUT |= MUX_CONTROL2_PIN; \
114 /******************************************************************************/
116 #endif /* HAL_IO_MACROS */