亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? fmtuner_drvfunction.c

?? TEA5767HN飛利浦收音芯片的驅動程序
?? C
?? 第 1 頁 / 共 3 頁
字號:
//-----------------------------------------------------------------------------
// (C) Copyright 2003 Philips Semiconductors, All rights reserved
//
// This source code and any compilation or derivative thereof is the sole
// property of Philips Corporation and is provided pursuant to a Software
// License Agreement.  This code is the proprietary information of Philips
// Corporation and is confidential in nature.  Its use and dissemination by
// any party other than Philips Corporation is strictly limited by the
// confidential information provisions of the Agreement referenced above.
//-----------------------------------------------------------------------------
// FILE NAME:    fmTuner_Key.c
//
// VERSION:      <1.00.00.0000>
//
// DESCRIPTION:  This module handles the keyboard event process
//               This virsion has no local variables, using global variables for key
//               process,pointer structure for function of key process  is not modified,
//               return value is replaced with fuzhi yuju.
//
// DOCUMENT REF: SZLAB/PRS0001 SZLAB/PRS0003
// NOTES:        <File notes>
//-----------------------------------------------------------------------------
//
//-----------------------------------------------------------------------------
// Standard include files:
//-----------------------------------------------------------------------------
//
#include "common.h"
#include "cmd_glb.h"
#include "keyb_glb.h"
#include "global.h"
#include "PSA_API.h"

//-----------------------------------------------------------------------------
// Project include files:
//-----------------------------------------------------------------------------
//
#include "fmTuner.h"
#include "fmI2cmaster.h"
#include "fmTuner_DrvFunction.h"
#include "fmDisplay.h"
#include "fmTuner_GPIO.h"
#include "fmTuner_PresetStore.h"
//-----------------------------------------------------------------------------
// Types and defines:
//-----------------------------------------------------------------------------
//
#define cTIME_SLOT_1MS  10000

//declarations for internal functions
static void fmTuner_SendSequentialByte(U8* pkBuffer,U32 kSize);
static void FetchCommandData(void);
static U32 GetPllFromFrequency(U16 kFrequencyWanted);
static U8  SaveFrequencyStep;
U16 fmTuner_GetStepSize(void);
U16 fmTuner_GetMinimumFrequency(void);
U16 fmTuner_GetMaxFrequency(void);

//-----------------------------------------------------------------------------
// Global data:
//-----------------------------------------------------------------------------
U8 gfmTuner_I2C_BufferRead[5];
U8 gfmTuner_I2C_BufferSend[5];
fmTuner_MonoStereo_e          gfmTuner_eMonoStereo;
fmTuner_MonoStereo_e          gfmTuner_eStereoStatus;
fmTuner_HighLowInjection_e    gfmTuner_eHighLowInjection;
fmTuner_SearchLevel_e         gfmTuner_eSearchLevel;
U8 gfmTuner_u8SearchBusy;
U8     gfmTuner_u8InTune;
U8  gfmTuner_u8AstSearchBusy;
U8  gfmTuner_u8SearchWrapAround;
U8  gfmTuner_u8SaveBusy;
U8  gfmTuner_u8TimerHalfSec;
U8  gfmTuner_u8TimeOutFunctionTimer;
U8  gfmTuner_u8BackGround;
U8  gfmTuner_u8WriteFlash;

U16 gfmTuner_u16TunerFrequency=cFM_TUNER_FREQUENCY_START;
U16 gfmTuner_u32FrequencyRemainder=0;

fmTuner_TuningDirection_e gfmTuner_eSearchDirection; 




static U8  gfmTuner_u8SlectChannel=0;


//-----------------------------------------------------------------------------
// FUNCTION:    fmTuner_GetMonoStereoStatus  
//
// DESCRIPTION: 
//
// RETURN:      none
//
// NOTES:       <Function notes - pre/post state, side effects, reentrancy>
//-----------------------------------------------------------------------------
static fmTuner_MonoStereo_e  fmTuner_GetMonoStereoStatus(void)
{
    if(gfmTuner_I2C_BufferRead[TUNER_STEREO_LOCATION]&TUNER_STEREO_MASK)
    {
        return fmTuner_MonoStereo_Stereo;    	
    }
    else
    {
    	return fmTuner_MonoStereo_Mono;
    }

}
//-----------------------------------------------------------------------------
// FUNCTION: fmTuner_DisplayRefresh     
//
// DESCRIPTION: 
//
// RETURN:      none
//
// NOTES:       <Function notes - pre/post state, side effects, reentrancy>
//-----------------------------------------------------------------------------
void fmTuner_DisplayRefresh(void)
{
    fmDisplay_RadioFrequency(gfmTuner_u16TunerFrequency);
    fmDisplay_RadioPresetIndicator(gfmTuner_u8ManualPreset);
    fmTuner_PresetDetect();
    
}
//-----------------------------------------------------------------------------
// FUNCTION:    fmTuner_GlobalVariablesInitialize      
//
// DESCRIPTION: 
//
// RETURN:      none
//
// NOTES:       <Function notes - pre/post state, side effects, reentrancy>
//-----------------------------------------------------------------------------
void fmTuner_GlobalVariablesInitialize(void)
{
   gfmTuner_u8ManualPreset=cFM_TUNER_MANUAL;
   gfmTuner_u8PresetIndex=0;
   gfmTuner_u8PresetFirst=0;
   gfmTuner_eMonoStereo=fmTuner_MonoStereo_Stereo;
   gfmTuner_eStereoStatus=fmTuner_MonoStereo_Mono;
   gfmTuner_eHighLowInjection=fmTuner_HighLowInjection_High;
   gfmTuner_eSearchLevel=fmTuner_SearchLevel_1;
   gfmTuner_u8SearchBusy=FALSE;
   gfmTuner_u8InTune=FALSE;
   gfmTuner_u8AstSearchBusy=FALSE;
   gfmTuner_u8SaveBusy=FALSE;
   gfmTuner_u8TimerHalfSec=0;
   gfmTuner_u8TimeOutFunctionTimer=0;
   gfmTuner_u8BackGround=FALSE;
   gfmTuner_u8WriteFlash=FALSE;
}
//-----------------------------------------------------------------------------
// FUNCTION:      
//
// DESCRIPTION: 
//
// RETURN:      none
//
// NOTES:       <Function notes - pre/post state, side effects, reentrancy>
//-----------------------------------------------------------------------------

//-----------------------------------------------------------------------------
// FUNCTION:  fmTuner_InitiateSaveHandler  
//
// DESCRIPTION: 
//
// RETURN:      none
//
// NOTES:       <Function notes - pre/post state, side effects, reentrancy>
//-----------------------------------------------------------------------------
void fmTuner_InitiateSaveHandler(void)
{
    gfmTuner_u8SaveBusy=TRUE;
    SaveFrequencyStep=1;
    gfmTuner_u8TimeOutFunctionTimer=150;
    
}
//-----------------------------------------------------------------------------
// FUNCTION:    fmTuner_ExitSaveHandler  
//
// DESCRIPTION: 
//
// RETURN:      none
//
// NOTES:       <Function notes - pre/post state, side effects, reentrancy>
//-----------------------------------------------------------------------------
void fmTuner_ExitSaveHandler(void)
{
     gfmTuner_u8SaveBusy=FALSE;
     SaveFrequencyStep=0;
     fmDisplay_RadioPutChannelNumber(0,0);
     fmTuner_PresetDetect();
}
//-----------------------------------------------------------------------------
// FUNCTION:    fmTuner_PresetDetect  
//
// DESCRIPTION: 
//
// RETURN:      none
//
// NOTES:       <Function notes - pre/post state, side effects, reentrancy>
//-----------------------------------------------------------------------------
void fmTuner_PresetDetect(void)
{
    U8    PresetNumber; 
    PresetNumber=fmTuner_IsInPresetChannel(gfmTuner_u16TunerFrequency);
    if(PresetNumber)
    {
        fmDisplay_RadioPutChannelNumber(PresetNumber--,1);
        gfmTuner_u8PresetIndex=PresetNumber;
        gfmTuner_u8PresetFirst=TRUE;
    }

}
//-----------------------------------------------------------------------------
// FUNCTION:  fmTuner_SaveHandler  
//
// DESCRIPTION: 
//
// RETURN:      none
//
// NOTES:       <Function notes - pre/post state, side effects, reentrancy>
//-----------------------------------------------------------------------------
void fmTuner_SaveHandler(U32 Key)
{
    if(Key==Keyb_Code_Play)
    {
        //exit this handler    
        gfmTuner_u8TimeOutFunctionTimer=1;
    }
    else
    {
        
        switch(SaveFrequencyStep)
        {
           
            case 2:
                 if(Key==Keyb_Code_Eq)
                 {
                      if(gfmTuner_u8SlectChannel<cFM_TUNER_PRESET_MAX)
                      {
                          gfmTuner_pPointer->PreSetChannel[gfmTuner_u8SlectChannel].PresetFrequency=gfmTuner_u16TunerFrequency;
                          gfmTuner_pPointer->PreSetChannel[gfmTuner_u8SlectChannel].DisableEnable=TRUE;
                          gfmTuner_u8PresetIndex=gfmTuner_u8SlectChannel;
                      }
                     
                     gfmTuner_u8TimeOutFunctionTimer=1;
                     SaveFrequencyStep=0;
                     gfmTuner_u8WriteFlash=TRUE;
                     
                 }
            case 1:
                   if(Key==Keyb_Code_Next)
                   {
                       gfmTuner_u8SlectChannel++;
                       if(gfmTuner_u8SlectChannel>=cFM_TUNER_PRESET_MAX)
                       {
                           gfmTuner_u8SlectChannel=0;
                       }
                       SaveFrequencyStep=2;
                   }
                   else if(Key==Keyb_Code_Prev)
                   {
                       if(gfmTuner_u8SlectChannel)
                       {
                           gfmTuner_u8SlectChannel--;
                       }
                       else
                       {
                           gfmTuner_u8SlectChannel=cFM_TUNER_PRESET_MAX-1;
                       }
                      
                       
                      
                       SaveFrequencyStep=2;
                   }
                   
                   
            break;
            default:
            break;
        }   
    }
    
    
}

//-----------------------------------------------------------------------------
// FUNCTION:    fmTuner_FlashChannelNumber  
//
// DESCRIPTION: 
//
// RETURN:      none
//
// NOTES:       <Function notes - pre/post state, side effects, reentrancy>
//-----------------------------------------------------------------------------
void fmTuner_FlashChannelNumber(void)
{
    U8 True;
    True=FALSE;    
    if(gfmTuner_u8TimerHalfSec>=8)
    {
        True=TRUE;
    }
    
    fmDisplay_RadioPutChannelNumber((U8)(gfmTuner_u8SlectChannel+1),True);
}
//-----------------------------------------------------------------------------
// FUNCTION:  fmTuner_StereoMonoDisplay  
//
// DESCRIPTION: 
//
// RETURN:      none
//
// NOTES:       <Function notes - pre/post state, side effects, reentrancy>
//-----------------------------------------------------------------------------
void fmTuner_StereoMonoDisplay(void)
{
    fmTuner_MonoStereo_e temp;
    temp=fmTuner_GetMonoStereoStatus();
    if(temp!=gfmTuner_eStereoStatus)
    {
        fmDisplay_RadioStereo(temp==fmTuner_MonoStereo_Stereo);
                
    }
    gfmTuner_eStereoStatus=temp;		
}
//-----------------------------------------------------------------------------
// FUNCTION:    fmTuner_ToggleStereoMono
//
// DESCRIPTION: 
//
// RETURN:      none
//
// NOTES:       <Function notes - pre/post state, side effects, reentrancy>
//-----------------------------------------------------------------------------
void fmTuner_ToggleStereoMono(void)
{
    gfmTuner_eMonoStereo=(fmTuner_MonoStereo_e)(!gfmTuner_eMonoStereo);
    fmTuner_TuneToFrequecy(gfmTuner_u16TunerFrequency);
    fmTuner_OsGenernalDelay(200);
    fmTuner_MuteDemuteTuner(FALSE);
}


//-----------------------------------------------------------------------------
// FUNCTION:    fmTuner_CancelAstSearch  
//
// DESCRIPTION: 
//
// RETURN:      none
//
// NOTES:       <Function notes - pre/post state, side effects, reentrancy>
//-----------------------------------------------------------------------------
void fmTuner_CancelAstSearch(void)
{
    fmTuner_TuneToFrequecy(gfmTuner_u16TunerFrequency);
    fmTuner_OsGenernalDelay(5);	
    fmDisplay_RadioFrequency(gfmTuner_u16TunerFrequency);
    gfmTuner_u8AstSearchBusy=FALSE;
    gfmTuner_u8InTune=TRUE;
    
     
}
//-----------------------------------------------------------------------------
// FUNCTION:    fmTuner_CheckAstSearch  
//
// DESCRIPTION: 
//
// RETURN:      none
//
// NOTES:       <Function notes - pre/post state, side effects, reentrancy>
//-----------------------------------------------------------------------------
void fmTuner_CheckAstSearch(void)
{
    if(gfmTuner_u8SearchWrapAround==TRUE)
    {
        fmTuner_CancelAstSearch();

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩和欧美一区二区| 国产九色精品成人porny | 日本不卡一二三| 国产日韩欧美a| 欧美精三区欧美精三区| 丁香激情综合国产| 热久久一区二区| 亚洲综合色视频| 欧美激情一区二区在线| 日韩一区二区电影网| 色999日韩国产欧美一区二区| 久久66热偷产精品| 亚洲福中文字幕伊人影院| 欧美国产欧美综合| 久久蜜桃一区二区| 欧美成人福利视频| 欧美日韩精品欧美日韩精品| 99re视频这里只有精品| 国产精品一区二区男女羞羞无遮挡 | 久久影院视频免费| 欧美色综合影院| 成人黄页毛片网站| 精品一区二区三区久久久| 香港成人在线视频| 亚洲一线二线三线视频| 亚洲欧洲精品天堂一级| 久久精品网站免费观看| 日韩欧美国产精品| 欧美电影在线免费观看| 在线欧美日韩精品| 色综合欧美在线视频区| 色先锋aa成人| 91丨porny丨国产入口| www.日韩精品| 成人一区二区三区| 成人做爰69片免费看网站| 国产大陆亚洲精品国产| 国产精品一区二区在线看| 久久机这里只有精品| 久久精品国产澳门| 久久99精品视频| 国内精品第一页| 国产精品中文字幕欧美| 精品无码三级在线观看视频| 韩国精品在线观看| 国产寡妇亲子伦一区二区| 极品少妇xxxx偷拍精品少妇| 黑人巨大精品欧美黑白配亚洲| 黑人精品欧美一区二区蜜桃 | 色哟哟日韩精品| 91麻豆精东视频| 在线日韩国产精品| 欧美日韩国产综合一区二区三区 | 欧美性色综合网| 欧美日韩精品一区二区三区四区| 欧美日本视频在线| 欧美一卡2卡3卡4卡| 精品国产免费人成电影在线观看四季| 久久婷婷国产综合国色天香| 中文字幕免费一区| 一二三区精品视频| 午夜激情一区二区三区| 久久精品国产99久久6| 成人午夜视频免费看| 一本到不卡免费一区二区| 欧美日韩免费在线视频| 日韩你懂的在线观看| 亚洲国产精品成人综合色在线婷婷| 亚洲嫩草精品久久| 日韩精品一二三四| 国产剧情一区在线| 日本韩国视频一区二区| 日韩视频在线你懂得| 国产免费观看久久| 亚洲chinese男男1069| 国产成人午夜视频| 欧美写真视频网站| 久久久99精品久久| 亚洲制服丝袜在线| 久久99在线观看| 91捆绑美女网站| 欧美大片在线观看一区二区| 综合欧美一区二区三区| 蜜臀av亚洲一区中文字幕| 成人午夜视频免费看| 91精品国产欧美一区二区成人| 欧美经典三级视频一区二区三区| 亚洲va欧美va国产va天堂影院| 国产一区二区三区精品视频| 色综合天天综合| 精品国产91九色蝌蚪| 夜夜精品视频一区二区| 国产老肥熟一区二区三区| 欧美男人的天堂一二区| 国产精品乱人伦| 日韩1区2区日韩1区2区| 色综合久久久久综合体| 日韩免费福利电影在线观看| 亚洲自拍偷拍九九九| 国产福利精品导航| 欧美一区二区三区免费在线看| 中文字幕一区二区三区不卡| 麻豆精品一区二区三区| 欧美日韩免费不卡视频一区二区三区| 国产午夜亚洲精品羞羞网站| 日韩不卡一二三区| 欧美中文字幕一区二区三区亚洲| 久久久91精品国产一区二区精品 | 成人av电影免费在线播放| 欧美一区二区三区思思人| 亚洲欧美一区二区在线观看| 国内久久精品视频| 7777精品伊人久久久大香线蕉| 国产精品女人毛片| 国内精品视频666| 91.com在线观看| 亚洲一区二区视频在线观看| 91在线视频网址| 亚洲国产高清在线| 国产精品亚洲人在线观看| 欧美大度的电影原声| 日日摸夜夜添夜夜添亚洲女人| 欧美中文字幕久久| 亚洲欧美欧美一区二区三区| 成人午夜视频在线观看| 国产欧美日本一区视频| 国产精品1024| 国产欧美日韩中文久久| 国产精品自拍网站| 久久久精品蜜桃| 国产一区二区三区电影在线观看 | 免费精品视频在线| 欧美一区二区三区系列电影| 五月天丁香久久| 精品视频在线免费看| 亚洲国产日韩a在线播放性色| 在线观看亚洲精品| 亚洲国产毛片aaaaa无费看| 日本韩国欧美一区二区三区| 亚洲国产美女搞黄色| 欧美精品99久久久**| 日本不卡123| 精品久久久久久无| 国产不卡视频在线观看| 国产精品免费视频网站| 91在线观看污| 一级精品视频在线观看宜春院| 欧美三级韩国三级日本一级| 日韩国产高清在线| 欧美大片一区二区| 国产iv一区二区三区| 国产精品国产a| 色综合视频在线观看| 亚洲图片欧美一区| 欧美一级欧美三级| 国产精品一区二区在线播放| 成人欧美一区二区三区黑人麻豆| 91麻豆免费在线观看| 丝袜亚洲另类欧美| 欧美大度的电影原声| 成人黄色综合网站| 亚洲国产日日夜夜| 欧美电视剧在线看免费| 成年人午夜久久久| 香蕉乱码成人久久天堂爱免费| 精品久久一区二区| 成人app在线观看| 亚洲chinese男男1069| 2021国产精品久久精品| 91在线视频播放| 日日夜夜精品视频免费| 国产日韩欧美精品电影三级在线| 91麻豆免费在线观看| 美国欧美日韩国产在线播放| 欧美韩国一区二区| 欧美日本韩国一区| 国产激情视频一区二区在线观看| 亚洲欧美日韩一区| 欧美成人一区二区三区片免费| 97se亚洲国产综合自在线不卡 | 天天综合网天天综合色| 久久日韩精品一区二区五区| 91在线视频在线| 激情综合色综合久久| 亚洲激情五月婷婷| 国产亚洲欧美中文| 欧美精品一卡两卡| 成人晚上爱看视频| 日韩国产一二三区| 日韩美女视频一区二区 | 成人性生交大片免费看中文| 天堂在线一区二区| 亚洲欧美日韩国产中文在线| 精品成a人在线观看| 欧美亚洲日本一区| 国产一区 二区| 天堂一区二区在线| 依依成人精品视频| 国产欧美综合在线观看第十页| 5566中文字幕一区二区电影|