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

📄 gpioinline.h

📁 56f8300E系列dsp的BOOTloader
💻 H
📖 第 1 页 / 共 2 页
字号:
{
	register unsigned short Value;

	asm(move.w  x:(arch_gpio + BSP_PERIPH_BASE + 3), Value); /* Address + (peripheral_enable_reg offset) */
	asm(not.w   Mask);
	asm(and.w   Mask, Value);
	asm(move.w  Value, x:(arch_gpio + BSP_PERIPH_BASE + 3));
}

/*****************************************************************************
*
* Module:         gpioIoctlGPIO_SETAS_PERIPHERAL()
*
* Description:    A peripheral masters the gpio pin in PER register. 
*                 
* Returns:        None
*                 
* Arguments:      arch_gpio -  arch hardware device offset
*                 Mask - pin bit mask
*
* Range Issues:   None
*
* Test Method:    gpio.mcp
*
*****************************************************************************/
inline void gpioIoctlGPIO_SETAS_PERIPHERAL( register volatile arch_sPort * arch_gpio, register unsigned short Mask )
{
	register unsigned short Value;

	asm(move.w  x:(arch_gpio + BSP_PERIPH_BASE + 3), Value); /* Address + (peripheral_enable_reg offset) */
	asm(or.w    Mask, Value);
	asm(move.w  Value, x:(arch_gpio + BSP_PERIPH_BASE + 3));
}
    
/*****************************************************************************
*
* Module:         gpioIoctlGPIO_INTERRUPT_ASSERT_DISABLE()
*
* Description:    Disables an interrupt assert in IAR register. 
*                 
* Returns:        None
*                 
* Arguments:      arch_gpio -  arch hardware device offset
*                 Mask - pin bit mask
*
* Range Issues:   None
*
* Test Method:    gpio.mcp
*
*****************************************************************************/
inline void gpioIoctlGPIO_INTERRUPT_ASSERT_DISABLE( register volatile arch_sPort * arch_gpio, register unsigned short Mask )
{
	register unsigned short Value;

	asm(move.w  x:(arch_gpio + BSP_PERIPH_BASE + 4), Value); /* Address + (interrupt_assert_reg offset) */
	asm(not.w   Mask);
	asm(and.w   Mask, Value);
	asm(move.w  Value, x:(arch_gpio + BSP_PERIPH_BASE + 4));
}

/*****************************************************************************
*
* Module:         gpioIoctlGPIO_INTERRUPT_ASSERT_ENABLE()
*
* Description:    Enables an interrupt assert, 
*                 used only in software testing, in IAR register. 
*                 
* Returns:        None
*                 
* Arguments:      arch_gpio -  arch hardware device offset
*                 Mask - pin bit mask
*
* Range Issues:   None
*
* Test Method:    gpio.mcp
*
*****************************************************************************/
inline void gpioIoctlGPIO_INTERRUPT_ASSERT_ENABLE( register volatile arch_sPort * arch_gpio, register unsigned short Mask )
{
	register unsigned short Value;

	asm(move.w  x:(arch_gpio + BSP_PERIPH_BASE + 4), Value); /* Address + (interrupt_assert_reg offset) */
	asm(or.w    Mask, Value);
	asm(move.w  Value, x:(arch_gpio + BSP_PERIPH_BASE + 4));
}

/*****************************************************************************
*
* Module:         gpioIoctlGPIO_INTERRUPT_DISABLE()
*
* Description:    Disables edge detection for any 
*                 incoming interrupt in IENR register. 
*                 
* Returns:        None
*                 
* Arguments:      arch_gpio -  arch hardware device offset
*                 Mask - pin bit mask
*
* Range Issues:   None
*
* Test Method:    gpio.mcp
*
*****************************************************************************/
inline void gpioIoctlGPIO_INTERRUPT_DISABLE( register volatile arch_sPort * arch_gpio, register unsigned short Mask )
{
	register unsigned short Value;

	asm(move.w  x:(arch_gpio + BSP_PERIPH_BASE + 5), Value); /* Address + (interrupt_enable_reg offset) */
	asm(not.w   Mask);
	asm(and.w   Mask, Value);
	asm(move.w  Value, x:(arch_gpio + BSP_PERIPH_BASE + 5));
}

/*****************************************************************************
*
* Module:         gpioIoctlGPIO_INTERRUPT_ENABLE()
*
* Description:    Enables edge detection for any 
*                 incoming interrupt in IENR register. 
*                 
* Returns:        None
*                 
* Arguments:      arch_gpio -  arch hardware device offset
*                 Mask - pin bit mask
*
* Range Issues:   None
*
* Test Method:    gpio.mcp
*
*****************************************************************************/
inline void gpioIoctlGPIO_INTERRUPT_ENABLE( register volatile arch_sPort * arch_gpio, register unsigned short Mask )
{
	register unsigned short Value,  *Addr;

	asm(move.w  x:(arch_gpio + BSP_PERIPH_BASE + 5), Value); /* Address + (interrupt_enable_reg offset) */
	asm(or.w    Mask, Value);
	asm(move.w  Value, x:(arch_gpio + BSP_PERIPH_BASE + 5));
}

/*****************************************************************************
*
* Module:         gpioIoctlGPIO_INTERRUPT_DETECTION_ACTIVE_HIGH()
*
* Description:    The interrupt seen at the PAD is active high.
*                 
* Returns:        None
*                 
* Arguments:      arch_gpio -  arch hardware device offset
*                 Mask - pin bit mask
*
* Range Issues:   None
*
* Test Method:    gpio.mcp
*
*****************************************************************************/
inline void gpioIoctlGPIO_INTERRUPT_DETECTION_ACTIVE_HIGH( register volatile arch_sPort * arch_gpio, register unsigned short Mask )
{
	register unsigned short Value;

	asm(move.w  x:(arch_gpio + BSP_PERIPH_BASE + 6), Value); /* Address + (interrupt_polarity_reg offset) */
	asm(not.w   Mask);
	asm(and.w   Mask, Value);
	asm(move.w  Value, x:(arch_gpio + BSP_PERIPH_BASE + 6));
}

/*****************************************************************************
*
* Module:         gpioIoctlGPIO_INTERRUPT_DETECTION_ACTIVE_LOW()
*
* Description:    The interrupt seen at the PAD is active low.
*                 
* Returns:        None
*                 
* Arguments:      arch_gpio -  arch hardware device offset
*                 Mask - pin bit mask
*
* Range Issues:   None
*
* Test Method:    gpio.mcp
*
*****************************************************************************/
inline void gpioIoctlGPIO_INTERRUPT_DETECTION_ACTIVE_LOW( register volatile arch_sPort * arch_gpio, register unsigned short Mask )
{
	register unsigned short Value;

	asm(move.w  x:(arch_gpio + BSP_PERIPH_BASE + 6), Value); /* Address + (interrupt_polarity_reg offset) */
	asm(or.w    Mask, Value);
	asm(move.w  Value, x:(arch_gpio + BSP_PERIPH_BASE + 6));
}

/*****************************************************************************
*
* Module:         gpioIoctlGPIO_CLEAR_INTERRUPT_PEND_REGISTER()
*
* Description:    By writing zeros (???) to this register, the IPR is cleared.
*                 
* Returns:        None
*                 
* Arguments:      arch_gpio -  arch hardware device offset
*                 Mask - pin bit mask
*
* Range Issues:   None
*
* Test Method:    gpio.mcp
*
*****************************************************************************/
inline void gpioIoctlGPIO_CLEAR_INTERRUPT_PEND_REGISTER( register volatile arch_sPort * arch_gpio, register unsigned short Mask )
{
	register unsigned short Value;

	asm(move.w  x:(arch_gpio + BSP_PERIPH_BASE + 8), Value); /* Address + (interrupt_edge_sens_reg offset) */
	asm(or.w    Mask, Value);
	asm(move.w  Value, x:(arch_gpio + BSP_PERIPH_BASE + 8));
}

/*****************************************************************************
*
* Module:         gpioIoctlGPIO_READ()
*
* Description:    Reads the value of an input pin.
*                 
* Returns:        Value of an input pin; 0 or 1 value
*                 
* Arguments:      arch_gpio -  arch hardware device offset
*                 Mask - pin bit mask
*
* Range Issues:   None
*
* Test Method:    gpio.mcp
*
*****************************************************************************/
inline unsigned short gpioIoctlGPIO_READ( register volatile arch_sPort * arch_gpio, register unsigned short Mask )
{
	register unsigned int Value;
	asm(move.w  X:(arch_gpio + BSP_PERIPH_BASE + 1), Value);
	return (Value & Mask) ? 1 : 0;
}
                        

#ifdef __cplusplus
}
#endif

#endif /* __GPIOINLINE_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -