cc2530-projects/Zigbee无线通信/A板/CC2530_lib/common/hal_digio.h
2021-10-04 22:26:10 +08:00

47 lines
1.5 KiB
C

//-------------------------------------------------------------------
// Filename: hal_digio.h
// Description: HAL digital IO functionality
//-------------------------------------------------------------------
//-------------------------------------------------------------------
// CONSTANTS AND DEFINES
//-------------------------------------------------------------------
enum
{
HAL_DIGIO_INPUT, HAL_DIGIO_OUTPUT
};
enum
{
HAL_DIGIO_INT_FALLING_EDGE, HAL_DIGIO_INT_RISING_EDGE
};
#define HAL_DIGIO_OK 0
#define HAL_DIGIO_ERROR (~0)
//-------------------------------------------------------------------
// TYPEDEFS
//-------------------------------------------------------------------
typedef struct
{
uint8 port; // port number
uint8 pin; // pin number
uint8 pin_bm; // pin bitmask
uint8 dir; // direction (input or output)
uint8 initval; // initial value
} digioConfig;
//-------------------------------------------------------------------
// GLOBAL FUNCTIONS
//-------------------------------------------------------------------
uint8 halDigioConfig(const digioConfig *p);
uint8 halDigioClear(const digioConfig *p);
uint8 halDigioToggle(const digioConfig *p);
uint8 halDigioSet(const digioConfig *p);
uint8 halDigioGet(const digioConfig *p);
uint8 halDigioIntConnect(const digioConfig *p, ISR_FUNC_PTR func);
uint8 halDigioIntEnable(const digioConfig *p);
uint8 halDigioIntDisable(const digioConfig *p);
uint8 halDigioIntClear(const digioConfig *p);
uint8 halDigioIntSetEdge(const digioConfig *p, uint8 edge);