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

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

?? pt6311_fp.c

?? ZORAN 962/966 SOURCE CODE,DVD chip
?? C
字號:
/* **************************************************************************************
 *  Copyright (c) 2002 ZORAN Corporation, All Rights Reserved
 *  THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF ZORAN CORPORATION
 *
 *  File: $Workfile: pt6311_fp.c $             
 *
 * Description:
 * ============
 * Nec Front Panel
 * 
 * Log:
 * ====
 * $Revision: 1 $
 * Last Modified by $Author: Tomasp $ at $Modtime: 1/20/03 3:31p $ 
 ****************************************************************************************
 * Updates:
 ****************************************************************************************
 * $Log: /SourceCode/I64_Common/I64_Reference/FP/pt6311_fp/pt6311_fp.c $
 * 
 * 1     1/20/03 10:07p Tomasp
 * 
 * 3     12/09/02 5:58p Leslie
 * Support D16311_BT224_VFD
 * 
 * 4     23/04/02 9:26 Nirm
 * - Added dependency in "Config.h".
 * 
 * 3     9/01/02 18:35 Nirm
 * Corrected Include-paths.
 * 
 * 2     25/12/01 15:55 Atai
 * Code cleaning
 **************************************************************************************** */

#include "Config.h"		// Global Configuration - do not remove!

#include "Include\sysdefs.h"
#include "Playcore\Timing\timing.h"
#include "FP\fp_ll.h"
#include "FP\NEC_FP\nec_fp.h"
#include "FP\NEC_FP\nec_io.h"


static BYTE p_keycode[BYTES_USED_TO_SCANKEY];

/****************************************************************************/
void VFD_LL_Init(BYTE grid_count)
{
    BYTE i;

    for (i=0; i<BYTES_USED_TO_SCANKEY; i++)
		p_keycode[i] = 0;

	VFD_LL_SetGrid(grid_count);

    Set_Fp_STB(1);
    delay_us(1);
    Set_Fp_CLK(1);
    delay_us(1);
}
/****************************************************************************/
void VFD_LL_SetGrid(BYTE grid_count)
{
	BYTE real_grid_value;

	switch (grid_count)
	{
#ifdef UPD_16311
    case 8:
        real_grid_value = G8_S20;
   		break;
	case 9:
        real_grid_value = G9_S19;
		break;
    case 10:
        real_grid_value = G10_S18;
		break;
	case 11:
        real_grid_value = G11_S17;
		break;
	case 12:
        real_grid_value = G12_S16;
		break;
	case 13:
        real_grid_value = G13_S15;
		break;
	case 14:
        real_grid_value = G14_S14;
		break;
	case 15:
        real_grid_value = G15_S13;
		break;
	case 16:
        real_grid_value = G16_S12;
		break;
    default:		 
		//G8_S20 AS DEFAULT
        real_grid_value=0; //G14_S14;
		break;

#else
	case 4:
		real_grid_value = G4_S16;
		break;
	case 5:
		real_grid_value = G5_S16;
		break;
	case 6:
		real_grid_value = G6_S16;
		break;
	case 7:
		real_grid_value = G7_S15;
		break;
	case 8:
		real_grid_value = G8_S14;
		break;
	case 9:
		real_grid_value = G9_S13;
		break;
	case 10:
		real_grid_value = G10_S12;
		break;
	case 11:
		real_grid_value = G11_S11;
		break;
	default:
		real_grid_value = G11_S11;
		break;
#endif	//#ifdef UPD_16311	
	}

   
	delay_us(1);
	Set_Fp_STB(1);

	delay_us(1);
	Set_Fp_STB(0);
  
	delay_us(1);
	VFD_LL_WriteByte( DISPLAY_MODE| real_grid_value );

	delay_us(1);
}
/****************************************************************************/
void VFD_LL_SetDim(BYTE vfd_dim_level)
{
  BYTE real_dim_value;

  switch (vfd_dim_level)
  {
	case 0:
		real_dim_value = 0;
		break;
	case 1:
		real_dim_value = GON|DIM_2_16;
		break;
	case 2:
		real_dim_value = GON|DIM_4_16;
		break;
	case 3:
		real_dim_value = GON|DIM_10_16;
		break;
	case 4:
		real_dim_value = GON|DIM_11_16;
		break;
	case 5:
		real_dim_value = GON|DIM_12_16;
		break;
	case 6:
		real_dim_value = GON|DIM_13_16;
		break;
	case 7:
		real_dim_value = GON|DIM_14_16;
		break;
	default:
		real_dim_value = GON|DIM_14_16;
		break;
  }

  delay_us(1);
  Set_Fp_STB(1);

  delay_us(1);
  Set_Fp_STB(0);
  
  delay_us(1);
  VFD_LL_WriteByte( DISPLAY_CONTROL | real_dim_value );

  delay_us(1);

}
/****************************************************************************/
void VFD_LL_WriteDisplayRAM( BYTE grid, WORD data )
{
  delay_us(1);
  Set_Fp_STB(1);

  delay_us(1);
  Set_Fp_STB(0);
  
  delay_us(1);
  VFD_LL_WriteByte( (BYTE)(DATA_SETTING | NORMAL_OPERATION | ADDRESS_INCREASE | WRITE_DISPLAY ));

  delay_us(1);
  Set_Fp_STB(1);

  delay_us(1);
  Set_Fp_STB(0);

  delay_us(1);
// add for support for upd16311
#ifdef UPD_16311
  VFD_LL_WriteByte( (BYTE) ADDRESS_SETTING | (3*grid));
#else  
  VFD_LL_WriteByte( (BYTE) ADDRESS_SETTING | 2*grid);
#endif  // #ifdef UPD_16311
  delay_us(1);								
  VFD_LL_WriteByte( (BYTE) (data & 0x00ff) );

  delay_us(1);
  Set_Fp_STB(1);

  delay_us(1);
  Set_Fp_STB(0);

  delay_us(1);
  VFD_LL_WriteByte( (BYTE)(DATA_SETTING | NORMAL_OPERATION | ADDRESS_INCREASE | WRITE_DISPLAY ));

  delay_us(1);
  Set_Fp_STB(1);

  delay_us(1);
  Set_Fp_STB(0);

  delay_us(1);
// add for support for upd16311
#ifdef UPD_16311
  VFD_LL_WriteByte( (BYTE) ADDRESS_SETTING | (3*grid+1));
#else
  VFD_LL_WriteByte( (BYTE) ADDRESS_SETTING | 2*grid+1);
#endif  //#ifdef UPD_16311

  delay_us(1);
  VFD_LL_WriteByte( (BYTE) (data >> 8) );

  delay_us(1);
  Set_Fp_STB(1);

  delay_us(1);
}





/****************************************************************************/
/*
By Jerry CAI
Nov 30, 2002
*/

#ifdef D16311_BT224_VFD
void VFD_LL_WriteDisplayRAM_InDword( BYTE grid, DWORD data )
{

	
  delay_us(1);
  Set_Fp_STB(1);

  delay_us(1);
  Set_Fp_STB(0);
  
  delay_us(1);
  VFD_LL_WriteByte( (BYTE)(DATA_SETTING | NORMAL_OPERATION | ADDRESS_INCREASE | WRITE_DISPLAY ));

  delay_us(1);
  Set_Fp_STB(1);

  delay_us(1);
  Set_Fp_STB(0);

  delay_us(1);

  VFD_LL_WriteByte( (BYTE) ADDRESS_SETTING | (grid*3));

  delay_us(1);
  VFD_LL_WriteByte( (BYTE) (data & 0x00ff) );

  delay_us(1);
  Set_Fp_STB(1);

  delay_us(1);
  Set_Fp_STB(0);

  delay_us(1);
  VFD_LL_WriteByte( (BYTE)(DATA_SETTING | NORMAL_OPERATION | ADDRESS_INCREASE | WRITE_DISPLAY ));

  delay_us(1);
  Set_Fp_STB(1);

  delay_us(1);
  Set_Fp_STB(0);

  delay_us(1);

  VFD_LL_WriteByte( (BYTE) ADDRESS_SETTING | (grid*3+1));

  delay_us(1);
  VFD_LL_WriteByte( (BYTE) ((data >> 8) & 0x00ff) );

  delay_us(1);
  Set_Fp_STB(1);

  delay_us(1);
  Set_Fp_STB(0);



  VFD_LL_WriteByte( (BYTE)(DATA_SETTING | NORMAL_OPERATION | ADDRESS_INCREASE | WRITE_DISPLAY ));


  delay_us(1);
  Set_Fp_STB(1);

  delay_us(1);
  Set_Fp_STB(0);

  delay_us(1);

  VFD_LL_WriteByte( (BYTE) ADDRESS_SETTING | (grid*3+2));

  delay_us(1);
  VFD_LL_WriteByte( (BYTE) ((data >> 16) & 0x00ff) );

  delay_us(1);
  Set_Fp_STB(1);
  delay_us(1);

 
}

#endif



/****************************************************************************/
void VFD_LL_RefreshLED( BYTE led )
{
  delay_us(1);
  Set_Fp_STB(1);

  delay_us(1);
  Set_Fp_STB(0);

  delay_us(1);
  VFD_LL_WriteByte( (BYTE)(DATA_SETTING | NORMAL_OPERATION | ADDRESS_INCREASE | WRITE_LIGHTS ));

  delay_us(1);
  VFD_LL_WriteByte( led );

  delay_us(1);
  Set_Fp_STB(1);

}






BYTE VFD_LL_ReadKeyScan( BYTE*** Key_Code )
{
  delay_us(1);
  Set_Fp_STB(1);

  delay_us(1);
  Set_Fp_STB(0);
  
  /*
   * Note: The wait states are necessary because
   *       FP needs to have some time between
   *       writes.
   */
  
  delay_us(1);
  VFD_LL_WriteByte( (BYTE)(DATA_SETTING | NORMAL_OPERATION | ADDRESS_INCREASE | READ_KEYSCAN ));
  
  Set_FpDout_To_Input();

  delay_us(1);
  VFD_LL_ReadByte( p_keycode );

  delay_us(1);
  VFD_LL_ReadByte( p_keycode+1 );
 
  delay_us(1);
  VFD_LL_ReadByte( p_keycode+2 );

  Set_FpDout_To_Output();

  delay_us(1);
  Set_Fp_STB(1);

  **Key_Code = p_keycode;

  return BYTES_USED_TO_SCANKEY;
}


/****************************************************************************/
void VFD_LL_ReadInputs( BYTE** inputs )
{
  delay_us(1);
  Set_Fp_STB(1);

  delay_us(1);
  Set_Fp_STB(0);

  delay_us(1);
  VFD_LL_WriteByte( DATA_SETTING | NORMAL_OPERATION | ADDRESS_INCREASE | READ_INPUTS );

  delay_us(1);
  VFD_LL_ReadByte( *inputs );

  delay_us(1);
  Set_Fp_STB(1);
}
/****************************************************************************/
static void VFD_LL_WriteByte( BYTE byte )
{
	BYTE i;

	for( i=0x01; (i<=0x80 && i!=0); i<<=1 )	 // Change "&" into "&&" for condition
	{
      Set_Fp_CLK(0);
	  Set_Fp_DOUT((byte & i) ? 1:0);
      Set_Fp_CLK(1);
    }
}
/****************************************************************************/
static void VFD_LL_ReadByte( BYTE *byte )
{
	BYTE i;	

	Set_Fp_CLK(1);
	*byte = 0;   // Clear byte first

	for( i=0; i<7; i++ )
    {
	  Set_Fp_CLK(0);
      *byte |= ( Get_Fp_DIN() ? 0x80:0 );
	  Set_Fp_CLK(1);
      *byte >>= 1;	  
    }

	 Set_Fp_CLK(0);
     *byte |= ( Get_Fp_DIN() ? 0x80:0 );
     Set_Fp_CLK(1);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
韩国一区二区视频| 琪琪一区二区三区| 国产精品麻豆视频| 久久久一区二区三区| 久久婷婷国产综合精品青草| 精品国产免费久久| 久久婷婷综合激情| 国产精品另类一区| 亚洲精品视频免费观看| 一区二区三区国产豹纹内裤在线| 亚洲精选视频在线| 性感美女久久精品| 久久国产人妖系列| www.日韩在线| 色婷婷久久久综合中文字幕| 欧美日韩精品专区| 精品国产一区二区在线观看| 国产精品第五页| 日韩高清不卡一区二区三区| 精品一区二区影视| a级精品国产片在线观看| 色欲综合视频天天天| 欧美久久久久久久久久| 久久视频一区二区| 日韩美女精品在线| 欧美aⅴ一区二区三区视频| 国产一区二区电影| 欧美视频一区二区三区在线观看| 日韩一区二区三区免费看| 国产精品青草久久| 日韩av一级电影| 成人黄色免费短视频| 欧美精品99久久久**| 久久久五月婷婷| 亚洲一区二区三区美女| 国内精品免费在线观看| 欧美亚洲综合另类| 国产日韩影视精品| 亚洲国产视频在线| 成人在线综合网| 欧美精品久久久久久久久老牛影院 | 91麻豆国产在线观看| 欧美电影免费提供在线观看| 亚洲免费av网站| 国产精品一品二品| 2021久久国产精品不只是精品| 国产精品福利一区| 国产一区视频导航| 91麻豆精品国产91久久久资源速度 | 懂色av一区二区三区免费看| 欧美精品一级二级| 亚洲精品国产无套在线观| 国产成人免费av在线| 欧美一区二区三区不卡| 亚洲中国最大av网站| 丰满放荡岳乱妇91ww| www国产精品av| 美女诱惑一区二区| 欧美日韩一本到| 亚洲综合一区二区三区| 99精品桃花视频在线观看| 久久九九99视频| 国产伦精品一区二区三区视频青涩| 欧美亚洲图片小说| 亚洲影院免费观看| 91久久精品一区二区| 亚洲欧美日韩小说| 91在线porny国产在线看| 国产精品久久久一本精品| 国产高清亚洲一区| 亚洲精品在线观看网站| 激情综合色丁香一区二区| 日韩一区二区三区视频| 美国十次综合导航| 精品国产污污免费网站入口 | 欧美激情综合五月色丁香| 久久99热99| 国产亚洲欧美一级| 成人高清av在线| 亚洲天堂免费在线观看视频| 色婷婷久久久久swag精品 | 一本到不卡精品视频在线观看| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 色综合天天天天做夜夜夜夜做| 最新日韩在线视频| 在线观看不卡一区| 亚洲福利视频一区| 欧美成va人片在线观看| 国产麻豆精品在线| 亚洲欧美怡红院| 欧美性猛交xxxxxx富婆| 麻豆精品久久精品色综合| 久久亚区不卡日本| 色综合网色综合| 亚洲一区二区三区爽爽爽爽爽 | 国产剧情av麻豆香蕉精品| 国产日本欧美一区二区| 91网站在线观看视频| 亚洲成人动漫一区| 久久精品在这里| 欧美视频日韩视频在线观看| 免费看精品久久片| 亚洲欧洲av色图| 欧美一区二区三区喷汁尤物| 成人黄色免费短视频| 五月天婷婷综合| 欧美经典一区二区| 欧美日韩成人在线| 成人爱爱电影网址| 麻豆一区二区三| 最新不卡av在线| 久久婷婷综合激情| 欧美日韩免费一区二区三区视频| 激情五月激情综合网| 亚洲色图另类专区| 久久久久国产一区二区三区四区| 91在线一区二区三区| 国产一区二区三区视频在线播放| 一区二区三区四区蜜桃| 久久久精品中文字幕麻豆发布| 欧美日韩久久一区二区| 成人av综合在线| 国产精品综合久久| 老司机精品视频一区二区三区| 亚洲欧美激情视频在线观看一区二区三区| 日韩一区二区免费在线电影| 欧美色窝79yyyycom| 大美女一区二区三区| 欧美aaa在线| 婷婷国产在线综合| 亚洲美女视频一区| 中文字幕亚洲区| 国产精品欧美一级免费| www国产成人免费观看视频 深夜成人网 | 国产精品天干天干在线综合| 欧美一区二区黄色| 欧美精品少妇一区二区三区| 色爱区综合激月婷婷| 99精品国产视频| 福利电影一区二区| 成人性生交大合| 国产suv精品一区二区6| 国产一区二区三区日韩| 国产一区啦啦啦在线观看| 日本成人中文字幕| 日产国产欧美视频一区精品 | 国产99久久久久久免费看农村| 老司机一区二区| 国产一区视频在线看| 国产一区二区视频在线| 国产精品91xxx| 国产成人亚洲精品狼色在线 | 丝袜美腿亚洲色图| 视频在线观看一区| 人人狠狠综合久久亚洲| 麻豆freexxxx性91精品| 韩国精品免费视频| 国产主播一区二区三区| 国产精品一线二线三线| 国产成人av一区二区| jlzzjlzz亚洲日本少妇| 一本高清dvd不卡在线观看| 欧亚一区二区三区| 欧美裸体bbwbbwbbw| 欧美α欧美αv大片| 中文字幕乱码一区二区免费| 日韩一区欧美小说| 亚洲一区影音先锋| 麻豆成人免费电影| 国产成人av网站| 欧美色偷偷大香| 精品久久久久一区| 国产精品国产成人国产三级| 一级做a爱片久久| 青青草精品视频| 国产高清不卡一区| 在线一区二区观看| 精品久久久影院| 亚洲免费在线看| 精品一区二区三区久久| 91色在线porny| 4438成人网| 国产精品久久毛片av大全日韩| 亚洲一区二区在线播放相泽| 国产在线国偷精品免费看| 色婷婷综合五月| www一区二区| 亚洲二区在线视频| 丁香天五香天堂综合| 在线成人免费观看| 国产精品大尺度| 精品一区二区三区的国产在线播放| 成人sese在线| 精品国产123| 亚洲国产乱码最新视频 | 亚洲午夜精品网| 丁香一区二区三区| 亚洲精品一区二区三区在线观看| 一区二区三区四区在线免费观看| 国产尤物一区二区在线|