//==============================================================
void	F_Eng1EntertSet(void)
{
  switch(R_Mode)
  {
    case	0:			
      R_Mode=1;
      if(EE_Read(EE_Unit)!=ChangeUnitFlg) 
      { //  切換公英制 需重新清除相關 eeprom
        F_EepromClear_2();
        EE_Write(EE_SaveUserInit,1);
      }
      break;
      //=============	
      case	1:	
        R_Mode=2;		
        F_Write2Byte(EE_WheelSize_L,R_WheelSize);
        break;
        //=============	
        case	2:			
          R_Mode=3;
          if(ChangeUnitFlg)
            EE_Write(EE_SpeedMinMile,R_SpeedMin); 
          else
            EE_Write(EE_SpeedMinKm,R_SpeedMin); 
          break;	
          //=============	
          case	3:			
            R_Mode=4;
            if(ChangeUnitFlg)
              EE_Write(EE_SpeedMaxMile,R_SpeedMax);  
            else
              EE_Write(EE_SpeedMaxKm,R_SpeedMax);
            break;
            //=============	
            case	4:		
              R_Mode=5;
              EE_Write(EE_IncMax,R_IncMax);
              break;
              //=============	
              case	5:		
                R_Mode=0;
                EE_Write(EE_IncZeroAdr,R_IncZeroAdr);
                if(IncUpDownFlg==1) 
                {
                  R_IncMaxAd = R_IncCarryAd;
                }
                else
                {
                  R_IncMinAd = R_IncCarryAd;
                }                
                F_IncFinsh();
                break;
  }
}
Пример #2
0
//========================
void  F_GraphSpeedInc(void)
{
    unsigned	char	SpeedAdrTemp,IncAdrTemp;
    switch(R_PorgMode)
    {
      case	User1Val:
        SpeedAdrTemp=User_1_SpeedAdrVal;
        IncAdrTemp=User_1_IncAdrVal;
        break;
        //============
        case	User2Val:
          SpeedAdrTemp=User_2_SpeedAdrVal;
          IncAdrTemp=User_2_IncAdrVal;	
          break;
          //============
          case	User3Val:
            SpeedAdrTemp=User_3_SpeedAdrVal;
            IncAdrTemp=User_3_IncAdrVal;
            break;
            //============
    }
    EE_Write(SpeedAdrTemp+R_ProgramIndex,R_User_SetSpeed);
    EE_Write(IncAdrTemp+R_ProgramIndex,R_User_SetInc);
    //===========
    R_ProgramIndex++;
    if(R_ProgramIndex>=30)
    {
      R_ProgramIndex=0;
      R_Mode=0;
    }
    else
    {
      R_User_SetSpeed=EE_Read(SpeedAdrTemp+R_ProgramIndex);
      R_User_SetInc=EE_Read(IncAdrTemp+R_ProgramIndex);
      //F_ChangeGraphInc(R_ProgramIndex,R_User_SetInc);
      //F_ChangeGraphSpeed(R_ProgramIndex,R_User_SetSpeed);
    }
}
Пример #3
0
BYTE CheckAndSetDecoderScaler( void )
{
	BYTE mode;	//0 = NTSC(M), 1 = PAL (B,D,G,H,I), ...
	struct DEC_VIDEO_TIME_TABLE_s *pVideoTable;
	struct SCALER_TIME_TABLE_s *pScaler;
	WORD hActive,vActive;
	BYTE hStart, vStart;
	BYTE fScale;

	/*check video signal */
	if ( DecoderCheckVDLOSS(100) ) {
		ePuts("\n\rCheckAndSetDecoderScaler VDLOSS");
		DecoderFreerun(DECODER_FREERUN_60HZ);
		return( 1 );
	}
	/*get standard */
	mode = DecoderCheckSTD(100);
	if ( mode == 0x80 ) {
	    ePrintf("\n\rCheckAndSetDecoderScaler NoSTD");
		DecoderFreerun(DECODER_FREERUN_60HZ);
		return( 2 );
	}
	mode >>= 4;
	InputSubMode = mode; //save sub mode.
	if(mode >= 7) {
		DecoderFreerun(DECODER_FREERUN_60HZ);
		return 3;
	}

	/* link table */
	pVideoTable = &TW8836_DEC_TABLE[mode];
	/* read scale mode. 0:overscan(default), 1:full */
	fScale = EE_Read(EEP_INPUT_DEC);

    //dPrintf("\n\rCheckAndSetDecoderScaler mode:%bd",mode);
	//dPrintf("  %dx%d", pVideoTable->hActive,pVideoTable->vActive);
	//dPrintf(" hDelay:%bd vDelay:%bd", pVideoTable->hDelay,pVideoTable->vDelay);
	//if(fScale==0)/*ANALOG_OVERSCAN*/
	//	dPrintf(" hOverScan:%bd vOverScan:%bd", pVideoTable->hOverScan,pVideoTable->vOverScan);

	hStart  = pVideoTable->hDelay;
	hActive = pVideoTable->hActive;
	vStart  = pVideoTable->vDelay;
	vActive = pVideoTable->vActive;

	if(fScale==0) {	/*ANALOG_OVERSCAN*/
		hStart  += pVideoTable->hOverScan;
		hActive -= (pVideoTable->hOverScan*2);
		vStart  += pVideoTable->vOverScan;
		vActive -= (pVideoTable->vOverScan *2);
	}
	/* set decoder output crop */
	DecoderSetOutputCrop(hStart,hActive,vStart,vActive);

	/* set scaler */
	ScalerSetLineBufferSize(hActive);
	ScalerSetHScale(hActive);
	ScalerSetVScale(vActive);
	ScalerSet_vDE_value(vStart);

#if 0  //BK150717
	scaler_set_output(hActive,vActive,vStart,0);
#endif	

	/*scaler input clock polarity */
	InputSetClockPolarity(pVideoTable->pol);

	/*black level for NTSC */
	if(mode==0)	WriteTW88(REG10C, ReadTW88(REG10C) | 0x10);
	else		WriteTW88(REG10C, ReadTW88(REG10C) & ~0x10);

	/* search scaler table. If success, overwrite */
#ifdef SUPPORT_SCALER_OVERWRITE_TABLE
	pScaler = FindScalerTable(InputMain, pVideoTable->hActive,pVideoTable->vActive,pVideoTable->vFreq, 0,1);
	if(pScaler != NULL)
		OverWriteScalerWithTable(pScaler,1,1);
#endif

	//prepare info string
	FOsdSetInputMainString2FOsdMsgBuff();									 	
	StrCatDecoderModeName(mode);
		
	return(0);
}