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

📄 davincievm_gpio_exp.c

📁 TI的DM6446的硬件平台搭建的相关例子
💻 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 + -