📄 davincievm_gpio_exp.c
字号:
/*
* Copyright 2005 by Spectrum Digital Incorporated.
* All rights reserved. Property of Spectrum Digital Incorporated.
*
* Not for distribution.
*/
/*
* GPIO Expander implementation
*
*/
#include "davincievm_gpio_exp.h"
/* ------------------------------------------------------------------------ *
* *
* DAVINCIEVM_GPIO_EXP_init( ) *
* *
* ------------------------------------------------------------------------ */
Int16 DAVINCIEVM_GPIO_EXP_init()
{
return 0;
}
/* ------------------------------------------------------------------------ *
* *
* DAVINCIEVM_GPIO_EXP_getall( group_id, pattern ) *
* *
* ------------------------------------------------------------------------ */
Int16 DAVINCIEVM_GPIO_EXP_getall( Uint16 group_id, Uint16 *pattern )
{
// return DAVINCIEVM_I2C_read( group_id, ( Uint8* )pattern, 1 );
}
/* ------------------------------------------------------------------------ *
* *
* DAVINCIEVM_GPIO_EXP_setall( group_id, pattern ) *
* *
* ------------------------------------------------------------------------ */
Int16 DAVINCIEVM_GPIO_EXP_setall( Uint16 group_id, Uint16 pattern )
{
// return DAVINCIEVM_I2C_write( group_id, ( Uint8* )&pattern, 1 );
}
/* ------------------------------------------------------------------------ *
* *
* DAVINCIEVM_GPIO_EXP_setOutput( group_id, number, value ) *
* *
* group_id <- Gpio Expander Id *
* number <- GPIO# [0:7] *
* value <- 0:LOW 1:HIGH *
* *
* ------------------------------------------------------------------------ */
Int16 DAVINCIEVM_GPIO_EXP_setOutput( Uint16 group_id, Uint16 number, Uint8 value )
{
Int16 retcode = 0;
Uint16 pattern;
value = value & 0x01;
retcode |= DAVINCIEVM_GPIO_EXP_getall( group_id, &pattern );
if ( value == 0 )
pattern &= ~( 1 << number ); // Set GPIO to low
else
pattern |= ( 1 << number ); // Set GPIO to high
retcode |= DAVINCIEVM_GPIO_EXP_setall( group_id, pattern );
return retcode;
}
/* ------------------------------------------------------------------------ *
* *
* DAVINCIEVM_GPIO_EXP_getInput( group_id, number ) *
* *
* group_id <- Gpio Expander Id *
* number <- GPIO# [0:7] *
* value <- 0:LOW 1:HIGH *
* *
* ------------------------------------------------------------------------ */
Int16 DAVINCIEVM_GPIO_EXP_getInput( Uint16 group_id, Uint16 number )
{
Int16 retcode = 0;
Uint16 pattern;
retcode |= DAVINCIEVM_GPIO_EXP_getall( group_id, &pattern );
if ( retcode == 0 )
return ( ( pattern >> number ) & 0x01 );
else
return -1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -