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

📄 davincievm_led.c

📁 TI的DM6446的硬件平台搭建的相关例子
💻 C
字号:
/*
 *  Copyright 2005 by Spectrum Digital Incorporated.
 *  All rights reserved. Property of Spectrum Digital Incorporated.
 *
 *  Not for distribution.
 */

/*
 *  LED implementation
 *
 */

#include "davincievm_led.h"

/* ------------------------------------------------------------------------ *
 *                                                                          *
 *  DAVINCIEVM_LED_init( )                                                  *
 *                                                                          *
 * ------------------------------------------------------------------------ */
Int16 DAVINCIEVM_LED_init( )
{
    return DAVINCIEVM_LED_setall( 0xFF );
}

/* ------------------------------------------------------------------------ *
 *                                                                          *
 *  DAVINCIEVM_LED_getall( pattern )                                        *
 *                                                                          *
 * ------------------------------------------------------------------------ */
Int16 DAVINCIEVM_LED_getall( Uint16 *pattern )
{
    return DAVINCIEVM_I2C_read( LED_I2C_ADDR, ( Uint8* )pattern, 1 );
}

/* ------------------------------------------------------------------------ *
 *                                                                          *
 *  DAVINCIEVM_LED_setall( pattern )                                        *
 *                                                                          *
 * ------------------------------------------------------------------------ */
Int16 DAVINCIEVM_LED_setall( Uint16 pattern )
{
    return DAVINCIEVM_I2C_write( LED_I2C_ADDR, ( Uint8* )&pattern, 1 );
}

/* ------------------------------------------------------------------------ *
 *                                                                          *
 *  DAVINCIEVM_LED_on( number )                                             *
 *                                                                          *
 *      number <- LED# [0:7]                                                *
 *                                                                          *
 * ------------------------------------------------------------------------ */
Int16 DAVINCIEVM_LED_on( Uint16 number )
{
    Int16 retcode = 0;
    Uint16 pattern;
    Uint16 ledbit = ( 1 << ( 7 - number ) );        // Match number w/ LED labels

    retcode |= DAVINCIEVM_LED_getall( &pattern );   // Get LED pattern
    pattern &= ~ledbit;                             // Set LED #
    retcode |= DAVINCIEVM_LED_setall( pattern );    // Set LED pattern

    return retcode;
}

/* ------------------------------------------------------------------------ *
 *                                                                          *
 *  DAVINCIEVM_LED_off( number )                                            *
 *                                                                          *
 *      number <- LED# [0:7]                                                *
 *                                                                          *
 * ------------------------------------------------------------------------ */
Int16 DAVINCIEVM_LED_off( Uint16 number )
{
    Int16 retcode = 0;
    Uint16 pattern;
    Uint16 ledbit = ( 1 << ( 7 - number ) );        // Match number w/ LED labels

    retcode |= DAVINCIEVM_LED_getall( &pattern );   // Get LED pattern
    pattern |= ledbit;                              // Set LED #
    retcode |= DAVINCIEVM_LED_setall( pattern );    // Set LED pattern

    return retcode;
}

/* ------------------------------------------------------------------------ *
 *                                                                          *
 *  DAVINCIEVM_LED_toggle( number )                                         *
 *                                                                          *
 *      number <- LED# [0:7]                                                *
 *                                                                          *
 * ------------------------------------------------------------------------ */
Int16 DAVINCIEVM_LED_toggle( Uint16 number )
{
    Int16 retcode = 0;
    Uint16 pattern;
    Uint16 ledbit = ( 1 << ( 7 - number ) );        // Match number w/ LED labels

    retcode |= DAVINCIEVM_LED_getall( &pattern );   // Get LED pattern

    if ( ( pattern & ledbit ) == 0 )
        retcode |= DAVINCIEVM_LED_off( number );    // Toggle LED OFF
    else
        retcode |= DAVINCIEVM_LED_on( number );     // Toggle LED ON

    return retcode;
}

⌨️ 快捷键说明

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