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

📄 msscartprocess.c

📁 lcd tv : MST9E19A原代码
💻 C
📖 第 1 页 / 共 2 页
字号:
/******************************************************************************
 Copyright (c) 2003 MStar Semiconductor, Inc.
 All rights reserved.

 [Module Name]: scart_process.c
 [Date]:        31-Dec-2003
 [Comment]:
   scart pin8 control subroutines.
 [Reversion History]:
*******************************************************************************/

#define _SCART_C_

// System
#include <intrins.h>

// Common
#include "define.h"
#include "mcu.h"
#include "global.h"

// External
#include "common.h"
#include "uart.h"
#include "Menu_New_PAL.h"
#include "userpref.h"
#include "devaudio.h"
#include "mswindow.h"

#include "msio.h"
#include "msreg.h"

#include "power.h"

// Internal
#include "MsScartProcess.h"
#if(USE_SCART_PIN8)
XDATA BYTE g_ucScart1Event;
#if (ENABLE_SCART2)
XDATA BYTE g_ucScart2Event;
#endif
///////////////////////////////////////////////////////////////////////////////
// <Function>: msGetScart1Status
//
// <Description>: Returns status of the pin 8 of scart input 1 via A/D converter.
//
// <Returns> : 	Underflow (<3.0 V)          		[LOW]
//						Overflow  (>7.5V)     				[HIGH]
//						Midrange  (3.0V ~ 7.5V) 		[MID]
///////////////////////////////////////////////////////////////////////////////
BYTE msGetScart1Status(void)
{
    BYTE pin8Status = 0;
    BYTE ucBank;

    ucBank = msReadByte(BK0_00);
    msWriteByte(BK0_00, REG_BANK_ADC_DVI);
    pin8Status = msReadByte(Scart1AdcPin);//SAR2
    msWriteByte(BK0_00, ucBank);

    if(pin8Status <= PIN8_THRESHOLD_LOW1)
        pin8Status = PIN8_LOW;              // Underflow (<3.0 V)
    if(pin8Status >= PIN8_THRESHOLD_MID1)
        pin8Status = PIN8_HIGH;             // Overflow (>8.0V)

    if(pin8Status >= PIN8_THRESHOLD_LOW1&&pin8Status <= PIN8_THRESHOLD_MID1)
        pin8Status = PIN8_MID;    //  Midrange (3.0V ~ 7.5V)
    return pin8Status;
}

#if (ENABLE_SCART2)
///////////////////////////////////////////////////////////////////////////////
// <Function>: msGetScart2Status
//
// <Description>: Returns status of the pin 8 of scart input 2 via A/D converter.
//
// <Returns> : 	Underflow (<3.0 V)          		[LOW]
//						Overflow  (>7.5V)     				[HIGH]
//						Midrange  (3.0V ~ 7.5V) 		[MID]
///////////////////////////////////////////////////////////////////////////////
BYTE msGetScart2Status(void)
{
    BYTE pin8Status = 0;
    BYTE ucBank;

    ucBank = msReadByte(BK0_00);
    msWriteByte(BK0_00, REG_BANK_ADC_DVI);
    pin8Status = msReadByte(Scart2AdcPin);//SAR3
    msWriteByte(BK0_00, ucBank);

    if(pin8Status <= PIN8_THRESHOLD_LOW2)
        pin8Status = PIN8_LOW;              // Underflow (<3.0 V)
    if(pin8Status >= PIN8_THRESHOLD_MID2)
        pin8Status = PIN8_HIGH;             // Overflow (>8.0V)

    if(pin8Status >= PIN8_THRESHOLD_LOW2&&pin8Status <= PIN8_THRESHOLD_MID2)
        pin8Status = PIN8_MID;    //  Midrange (3.0V ~ 7.5V)
    return pin8Status;
}
#endif

///////////////////////////////////////////////////////////////////////////////
// <Function>: msCheckScartPin8
//
// <Description>: check pin8-state of scart1 & scart2 and send message if pin8-state has changed.
//
// <Returns> :
//
///////////////////////////////////////////////////////////////////////////////
void msCheckScartPin8Event(void)
{
    BYTE ucPin8StatusNew;

    // no PIN8 recognition in teletext
#if( ENABLE_TTX )
    if(g_bTTX_on)
        return;
#endif

    /** SCART 1 */
    ucPin8StatusNew = msGetScart1Status();
    // no PIN8 execution in adjustable menu
    if(GetMenuState() )
        return;
    if(ucPin8StatusNew != ucPin8StatusOld[0])
    {
        if(ucPin8StatusNew == PIN8_LOW)
        {
            if (ucPin8StatusOld[0] == PIN8_MID)
            {
                if(ucPin8PrevEvent != PIN8_SCART1_ML)
                {
                    g_ucScart1Event = PIN8_SCART1_ML;
                    ucPin8PrevEvent=PIN8_SCART1_ML;
                }
            }
            if(ucPin8StatusOld[0] == PIN8_HIGH)
            {
                if(ucPin8PrevEvent != PIN8_SCART1_HL)
                {
                    g_ucScart1Event = PIN8_SCART1_HL;
                    ucPin8PrevEvent=PIN8_SCART1_HL;
                }
            }
        }
        else if(ucPin8StatusNew == PIN8_MID)
        {
            if(ucPin8StatusOld[0] == PIN8_LOW)
            {
                if(ucPin8PrevEvent != PIN8_SCART1_LM)
                {
                    g_ucScart1Event = PIN8_SCART1_LM;
                    ucPin8PrevEvent=PIN8_SCART1_LM;
                }
            }
            if(ucPin8StatusOld[0] == PIN8_HIGH)
            {
                if(ucPin8PrevEvent != PIN8_SCART1_HM)
                {
                    g_ucScart1Event = PIN8_SCART1_HM;
                    ucPin8PrevEvent=PIN8_SCART1_HM;
                }
            }
        }
        else if(ucPin8StatusNew == PIN8_HIGH)
        {
            if(ucPin8StatusOld[0] == PIN8_LOW)
            {
                if(ucPin8PrevEvent != PIN8_SCART1_LH)
                {
                    g_ucScart1Event = PIN8_SCART1_LH;
                    ucPin8PrevEvent=PIN8_SCART1_LH;
                }
            }
            if(ucPin8StatusOld[0] == PIN8_MID)
            {
                if(ucPin8PrevEvent != PIN8_SCART1_MH)
                {
                    g_ucScart1Event = PIN8_SCART1_MH;
                    ucPin8PrevEvent=PIN8_SCART1_MH;
                }
            }
        }
        ucPin8StatusOld[0] = ucPin8StatusNew;
    }

  #if (ENABLE_SCART2)
    // SCART 2
    ucPin8StatusNew = msGetScart2Status();
    // no PIN8 execution in adjustable menu
    if(GetMenuState() )
        return;
    if(ucPin8StatusNew != ucPin8StatusOld[1])
    {
        if(ucPin8StatusNew == PIN8_LOW)
        {
            if(ucPin8StatusOld[1] == PIN8_MID)
            {
               if(ucPin8PrevEvent != PIN8_SCART2_ML)
               {
                    g_ucScart2Event = PIN8_SCART2_ML;
                    ucPin8PrevEvent=PIN8_SCART2_ML;
                }
            }
            if(ucPin8StatusOld[1] == PIN8_HIGH)
            {
               if(ucPin8PrevEvent != PIN8_SCART2_HL)
               {
                    g_ucScart2Event = PIN8_SCART2_HL;
                    ucPin8PrevEvent=PIN8_SCART2_HL;
                }
            }
        }
        else if(ucPin8StatusNew == PIN8_MID)
        {
            if(ucPin8StatusOld[1] == PIN8_LOW)
            {
               if(ucPin8PrevEvent != PIN8_SCART2_LM)
               {
                    g_ucScart2Event = PIN8_SCART2_LM;
                    ucPin8PrevEvent=PIN8_SCART2_LM;
                }
            }
            if(ucPin8StatusOld[1] == PIN8_HIGH)
            {
               if(ucPin8PrevEvent != PIN8_SCART2_HM)
               {
                    g_ucScart2Event = PIN8_SCART2_HM;

⌨️ 快捷键说明

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