⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xsgpiodrv.h

📁 usb 检验程序
💻 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 + -