📄 gpio_reg32.c
字号:
/*===============================================================================
TEXAS INSTRUMENTS INCORPORATED PROPRIETARY INFORMATION
Property of Texas Instruments
For Unrestricted Internal Use Only
Unauthorized reproduction and/or distribution is strictly prohibited.
This product is protected under copyright law and trade secret law
as an unpublished work.
Created 1999, (C) Copyright 1999 Texas Instruments. All rights reserved.
Filename : gpio.c
Description : Source file of GPIO ARM9 functions
This file manages GPIO with 32 bits registers
Project : PerseusG4
Author : Sebastien SABATIER
===============================================================================
*/
#include "gpio_reg32.h"
/*
-------------------------------------------------------------------------
GPIO_ReadAllDir
DESCRIPTION : read GPIO inputs
-------------------------------------------------------------------------
*/
UWORD32 GPIO_ReadAllDir (Mpuio_module_t mpuio_module)
{
UWORD32 value = *(REGISTER_UWORD32*)(GPIO_REG32_DIR_REG_ADDR + mpuio_module * MEM_RHEA_STROBE_LENGTH);
return value;
}
/*
-------------------------------------------------------------------------
GPIO_ReadAllDor -
DESCRIPTION : read GPIO output values
-------------------------------------------------------------------------
*/
UWORD32 GPIO_ReadAllDor (Mpuio_module_t mpuio_module)
{
UWORD32 value = *(REGISTER_UWORD32*)(GPIO_REG32_DOR_REG_ADDR + mpuio_module * MEM_RHEA_STROBE_LENGTH);
return value;
}
/*
-------------------------------------------------------------------------
GPIO_ReadAllDcr -
DESCRIPTION : read direction input/output pins
0 = output
1 = input
-------------------------------------------------------------------------
*/
UWORD32 GPIO_ReadAllDcr (Mpuio_module_t mpuio_module)
{
UWORD32 value = *(REGISTER_UWORD32*)(GPIO_REG32_DCR_REG_ADDR + mpuio_module * MEM_RHEA_STROBE_LENGTH);
return value;
}
/*
-------------------------------------------------------------------------
GPIO_ReadAllIcr -
DESCRIPTION : read interrupt control register
0 = high to low transition
1 = low to high transition
-------------------------------------------------------------------------
*/
UWORD32 GPIO_ReadAllIcr (Mpuio_module_t mpuio_module)
{
UWORD32 value = *(REGISTER_UWORD32*)(GPIO_REG32_ICR_REG_ADDR + mpuio_module * MEM_RHEA_STROBE_LENGTH);
return value;
}
/*
-------------------------------------------------------------------------
GPIO_ReadAllImr -
DESCRIPTION : read interrupt mask register
0 = unmasked
1 = masked
-------------------------------------------------------------------------
*/
UWORD32 GPIO_ReadAllImr (Mpuio_module_t mpuio_module)
{
UWORD32 value = *(REGISTER_UWORD32*)(GPIO_REG32_IMR_REG_ADDR + mpuio_module * MEM_RHEA_STROBE_LENGTH);
return value;
}
/*
-------------------------------------------------------------------------
GPIO_ReadAllIsr -
DESCRIPTION : read interrupt status register
0 = no interrupt request
1 = interrupt request
-------------------------------------------------------------------------
*/
UWORD32 GPIO_ReadAllIsr (Mpuio_module_t mpuio_module)
{
UWORD32 value = *(REGISTER_UWORD32*)(GPIO_REG32_ISR_REG_ADDR + mpuio_module * MEM_RHEA_STROBE_LENGTH);
return value;
}
/*
-------------------------------------------------------------------------
GPIO_ReadPin
DESCRIPTION : read input pin
-------------------------------------------------------------------------
*/
UWORD32 GPIO_ReadPin (UWORD32 pin_position, Mpuio_module_t mpuio_module)
{
UWORD32 value = GPIO_ReadAllDir(mpuio_module) & (1<<(pin_position));
return value;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -