mssensor.c

来自「mstar 776 开发的车载dvd」· C语言 代码 · 共 69 行

C
69
字号
///////////////////////////////////////////////////////////////////////////////
///@file msKeypad.c
///@brief Keypad Module
///@author MStarSemi Inc.
///////////////////////////////////////////////////////////////////////////////

#include "board.h"

#define _MSSENSOR_C_
#include "hwreg.h"
#include "mreg51.h"
#include "msIR.h"
#include "msKeypad.h"
#include "msAPI_Timer.h"
#include "drvGlobal.h"
#include "msSensor.h"
#include "drvSAR.h"

#define SENSOR_STABLE_COUNT         10
#define SENSOR_STABLE_NUM_MIN       6

static BYTE Sense0Val = 0xFF;
static BYTE Sense1Val = 0xFF;
static BYTE Sense2Val = 0xFF;

void msSensor_Init(void)
{
    printf("\r\n *** Sensor SAR Inited  ***");
}

BOOLEAN msSensor_CH_GetKey(U8 Channel, WORD *ADCValue)
{
    BYTE i, j = 0;

    for (i = 0; i < SENSOR_STABLE_COUNT; i++)
    {
        if (drvSAR_Get_ADC_Channel(Channel, ADCValue) == 0)
        {
            j++;

            if (j >= SENSOR_STABLE_NUM_MIN)
                return TRUE;
        }
    }

    return FALSE;
}

/******************************************************************************/
void msSensor_GetStatus(void)
{
    BYTE Channel;
	WORD ADCValue = 0x3FF;

    for (Channel = SENSOR_ADC_CHANNEL_0; Channel < SENSOR_ADC_CHANNEL_NUM; Channel++)
    {
        if (msSensor_CH_GetKey(Channel, &ADCValue))
        {
            if (Channel == SENSOR_ADC_CHANNEL_0)
                Sense0Val = ADCValue;
            else if (Channel == SENSOR_ADC_CHANNEL_1)
                Sense1Val = ADCValue;
            else if (Channel == SENSOR_ADC_CHANNEL_2)
                Sense2Val = ADCValue;
        }
    }
}
#undef _MSSENSOR_C_

⌨️ 快捷键说明

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