/* Copyright (c) 2009 Nordic Semiconductor. All Rights Reserved. * * The information contained herein is property of Nordic Semiconductor ASA. * Terms and conditions of usage are described in detail in NORDIC * SEMICONDUCTOR STANDARD SOFTWARE LICENSE AGREEMENT. * * Licensees are granted free, non-transferable use of the information. NO * WARRANTY of ANY KIND is provided. This heading must NOT be removed from * the file. * * $LastChangedRevision$ */ /** @file */ /** @defgroup hal_io hal_io * @{ * @ingroup hal * @brief Macros input/output management */ #include "hal_platform.h" #ifndef HAL_IO_H__ #define HAL_IO_H__ #define HAL_IO_P00 PIN0 #define HAL_IO_P01 PIN1 #define HAL_IO_P02 PIN2 #define HAL_IO_P03 PIN3 #define HAL_IO_P04 PIN4 #define HAL_IO_P05 PIN5 #define HAL_IO_P06 PIN6 #define HAL_IO_P07 PIN7 #define HAL_IO_P08 PIN8 #define HAL_IO_P09 PIN9 #define HAL_IO_OUTPUT OUTPUT #define HAL_IO_INPUT INPUT /**@brief Macro to configure an I/O. * @details * This macro configures a given I/O to input or output with pullup/buffer configuration. * @param io_name I/O to configure. * @param is_input Indicate if the I/O is to be set as an input. * @param io_mode Pull resistor and buffer configuration (must be HAL_IO_OUTPUT_NORMAL_STRENGTH, HAL_IO_OUTPUT_HIGH_STRENGTH, HAL_IO_INPUT_BUF_ON_NO_PULL, * HAL_IO_INPUT_BUF_ON_PULL_DOWN, HAL_IO_INPUT_BUF_ON_PULL_UP, or HAL_IO_INPUT_BUF_OFF). */ #define HAL_IO_CONFIG(io_name, is_input, io_mode) pinMode(io_name, is_input) /**@brief Macro to set an output. * @details * This macro sets the given output to the given level (1 -> high, 0 -> low). * @param io_name Output to change. * @param io_state Level to set. */ #define HAL_IO_SET_STATE(io_name, io_state) digitalWrite(io_name, io_state) /**@brief Macro that reads the current state of an input. * @details * This macro reads the current state of a logical input. * @param io_name Input to read. * @return Input state level (1 if high, 0 if low). */ #define HAL_IO_READ(io_name) digitalRead(io_name) #endif //HAL_IO_H__ /** @} */