//============================================================================== // Copyright Meta Watch Ltd. - http://www.MetaWatch.org/ // // Licensed under the Meta Watch License, Version 1.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.MetaWatch.org/licenses/license-1.0.html // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. //============================================================================== /******************************************************************************/ /*! \file hal_io_macros.c * * Separate the pin definitions for each board type from the macros * */ /******************************************************************************/ #ifndef HAL_IO_MACROS #define HAL_IO_MACROS /******************************************************************************/ #define BT_CLK_REQ_CONFIG_AS_INPUT() { \ BT_CLK_REQ_PDIR &= ~BT_CLK_REQ_PIN; \ } #define BT_CLK_REQ_CONFIG_AS_OUTPUT_LOW() { \ BT_CLK_REQ_PDIR |= BT_CLK_REQ_PIN; \ BT_CLK_REQ_POUT &= ~BT_CLK_REQ_PIN; \ } #define BT_IO1_CONFIG_AS_INPUT() { \ BT_IO1_PDIR &= ~BT_IO1_PIN; } #define BT_IO1_CONFIG_AS_OUTPUT_LOW() { \ BT_IO1_PDIR |= BT_IO1_PIN; \ BT_IO1_POUT &= ~BT_IO1_PIN; \ } #define BT_IO2_CONFIG_AS_INPUT() { \ BT_IO2_PDIR &= ~BT_IO2_PIN; \ } #define BT_IO2_CONFIG_AS_OUTPUT_LOW() { \ BT_IO2_PDIR |= BT_IO2_PIN; \ BT_IO2_POUT &= ~BT_IO2_PIN; } /******************************************************************************/ #define ACCELEROMETER_INT_ENABLE() { \ ACCELEROMETER_INT_PIFG &= ~ACCELEROMETER_INT_PIN; \ ACCELEROMETER_INT_PIE |= ACCELEROMETER_INT_PIN; \ } #define ACCELEROMETER_INT_DISABLE() { \ ACCELEROMETER_INT_PIE &= ~ACCELEROMETER_INT_PIN; \ ACCELEROMETER_INT_PIFG &= ~ACCELEROMETER_INT_PIN; \ } #define CONFIG_ACCELEROMETER_PINS() { \ ACCELEROMETER_SDA_PSEL |= ACCELEROMETER_SDA_PIN; \ ACCELEROMETER_SCL_PSEL |= ACCELEROMETER_SCL_PIN; \ ACCELEROMETER_INT_PDIR &= ~ACCELEROMETER_INT_PIN; \ } /* only configuration 5 and later boards support turning on/off the power * to the accelerometer */ #define ENABLE_ACCELEROMETER_POWER() { \ ACCELEROMETER_POWER_PDIR |= ACCELEROMETER_POWER_PINS; \ ACCELEROMETER_POWER_POUT |= ACCELEROMETER_POWER_PINS; \ } #define DISABLE_ACCELEROMETER_POWER() { \ ACCELEROMETER_POWER_PDIR |= ACCELEROMETER_POWER_PINS; \ ACCELEROMETER_POWER_POUT &= ~ACCELEROMETER_POWER_PINS; \ } /******************************************************************************/ #define ENABLE_MUX_OUTPUT_CONTROL() { \ MUX_CONTROL1_PDIR |= MUX_CONTROL1_PIN; \ MUX_CONTROL2_PDIR |= MUX_CONTROL2_PIN; \ } #define MUX_OUTPUT_OFF() { \ MUX_CONTROL1_POUT &= ~MUX_CONTROL1_PIN; \ MUX_CONTROL2_POUT &= ~MUX_CONTROL2_PIN; \ } #define MUX_OUTPUT_SELECTS_SERIAL() { \ MUX_CONTROL1_POUT |= MUX_CONTROL1_PIN; \ MUX_CONTROL2_POUT &= ~MUX_CONTROL2_PIN; \ } #define MUX_OUTPUT_SELECTS_GND() { \ MUX_CONTROL1_POUT &= ~MUX_CONTROL1_PIN; \ MUX_CONTROL2_POUT |= MUX_CONTROL2_PIN; \ } #define MUX_OUTPUT_SELECTS_SPY() { \ MUX_CONTROL1_POUT |= MUX_CONTROL1_PIN; \ MUX_CONTROL2_POUT |= MUX_CONTROL2_PIN; \ } /******************************************************************************/ #endif /* HAL_IO_MACROS */