📄 xsgpiodrv.h
字号:
#ifndef __XSGPIODRV_H
#define __XSGPIODRV_H
/*
************************************************************************************
* Included headers
************************************************************************************
*/
#include "RegCtl.h"
#include "XsGpioRegs.h"
/*
************************************************************************************
* Utility MACRO Functions
************************************************************************************
*/
// These Macros only apply for physical address
//set or get pin level
#define GPIO_SET_LEVEL(group, bit, level) \
ASSIGN_BIT_VAL(GPIO_GPLR(group), bit, val) \
#define GPIO_GET_LEVEL(group, bit) \
GET_BIT(GPIO_GPLR(group), bit)
//set or get pin direction
#define GPIO_SET_DIRECTION(group, bit, dir) \
ASSIGN_BIT_VAL(GPIO_GPDR(group), bit, val)
#define GPIO_GET_DIRECTION(group, bit) \
GET_BIT(GPIO_GPDR(group), bit)
//set a GPIO pin to '1'
#define GPIO_SET_PIN(group, bit) \
SET_BIT(GPIO_GPSR(group), bit)
//clear a GPIO pin to '0'
#define GPIO_CLR_PIN(group, bit) \
SET_BIT(GPIO_GPCR(group), bit)
//set a GPIO pin to detect rising /falling edge
#define GPIO_SET_RISING_EDGE(group, bit, val) \
ASSIGN_BIT_VAL(GPIO_GRER(group), bit, val)
#define GPIO_SET_FALLING_EDGE(group, bit, val) \
ASSIGN_BIT_VAL(GPIO_GFER(group), bit, val)
//read or clear edge event in GEDR register
#define GPIO_GET_EDGE_EVENT(group, bit) \
GET_BIT(GPIO_GEDR(group), bit)
#define GPIO_CLEAR_EDGE_EVENT(group, bit) \
SET_BIT(GPIO_GEDR(group), bit)
//set GPIO pin function
#define GPIO_SET_ALT_FUNC(group, bit, func) \
LOAD_FIELD(GPIO_GAFR_ADDR(group), func, bit, GAFR_AF_SZ)
#endif //#ifndef __XSGPIODRV_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -