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

📄 ampkey.~c

📁 关于收音功能代码,并且显示在OSD和VFD上
💻 ~C
📖 第 1 页 / 共 4 页
字号:

		case IR_AMP_BASS_BOOST:
			fgRet = fgAmpBassBoostKey();
		break;

    case IR_VOLUME_UP:
    	//bSetMic(NULL_POSITION, 1);
     fgRet = fgCOMVolumeUpKey();
        
      break;

    case IR_VOLUME_DOWN:
   fgRet = fgCOMVolumeDownKey();
        // bSetMic(NULL_POSITION, 0);
      break;

  case IR_MUTE:
      fgRet = fgCOMMuteKey();
      break;
#if 0
  case IR_MIC_VOLUMDN:
      fgRet = bComMicVolumeDnKey();
      break;

  case IR_MIC_VOLUMUP:
      fgRet = bComMicVolumeUpKey();
      break;
#endif	  
#ifdef TIME_SLEEP_FUCTION
		case IR_AMP_SLEEP:
			fgRet = fgAmpSetSleepKey();
		break;
#endif


#ifdef BBK_EARPHONE
		case IR_AMP_EARPHONE_IN:
			fgRet = fgAmpEarphoneInKey();
		break;

		case IR_AMP_EARPHONE_OUT:
			fgRet = fgAmpEarphoneOutKey();
		break;
#endif

		default:
			fgRet = UOP_OK;
		break;
	}

	return(fgRet);
}
#if  1
#ifdef  LED_LARGEMODE
  sbit          STROBE_PIN    =   P1^5;
  sbit          DATA_PIN        =  P1^4;
  sbit          CLK_PIN           =  P1^3;
sbit          FS0_00     =  P3^1;

BYTE bAmpVfdReadSw(void) large
{
  BYTE xdata temp;
  BYTE xdata temp2 = 0xff;
//  STROBE_PIN=1;
	FS0_00=0;
	vI2CDelay2us(0xf0);
  
		temp = DATA_PIN;           //P30--j4(UP3_0);P31--j3(UP3_1);  j3,j4 电位器控制脚
	if (CLK_PIN)
	  	temp = temp | 0x04; 	
	FS0_00=1;

  switch (_bLoopSwitchState)
  {
     case EV_LPSW_RESET:
	  if(temp == 0)
	  {
	     temp2 = IR_VOLUME_DOWN;
	     _bLoopSwitchState = EV_LPSW_END;
	  }
	  else if(temp == 0x01)
	  {
	     temp2 = IR_VOLUME_UP;
	     _bLoopSwitchState = EV_LPSW_END;
	  }
	  break;
     case EV_LPSW_END:
	  if(temp == 0x05)
	  {
	     _bLoopSwitchState = EV_LPSW_RESET;
	  }
          break;
     default:
  	  _bLoopSwitchState = EV_LPSW_RESET;
  	  break;
  }
  return(temp2);
}

#else
 BYTE xdata r_adjl;
 BYTE xdata  r_adjr;
 BYTE xdata r_adjdata;
 BYTE xdata	f_adjdir;

BYTE bAmpVfdReadSw(void) large
{
	BYTE xdata bData1;
	BYTE xdata bData2 = IR_NONE;
static xdata bData0=0;
	BYTE i,k,bTmp=0;
	BYTE xdata bKey[3];
	
	//vI2CDelay2us(0xf0);
	//vVfdStrobe(FALSE);
STROBE_PIN = 0; 
	//vI2CDelay2us(0xf0);
	//vVfdUpdate(0x42);
 vKeyReadVol(0x42);

	for(i=0;i<3;i++)
		{
		bKey[i]=bVfdRead();
		}
	//vVfdStrobe(TRUE);
	//vI2CDelay2us(0xf0);
STROBE_PIN = 1; 
	//vI2CDelay2us(0xf0);
	bKey[2] = bKey[2]&0x03;
	k=bKey[2]&0x01;
	if(k) 
	{
		r_adjl=(((r_adjl<<1)|0x01)&0x03);
	}
	else
	{
		r_adjl=((r_adjl<<1)&0x03);
	}

	k=bKey[2]&0x02;
	if(k) 
	{
		r_adjr=(((r_adjr<<1)|0x01)&0x03);
	}
	else
	{
		r_adjr=((r_adjr<<1)&0x03);
	}

	if((r_adjl==0x02) && (r_adjr==0x00))
	{
		if(f_adjdir==1) r_adjdata=0; 
		f_adjdir=0;
		r_adjdata++;	// 反转
	}

	if((r_adjl==0x00) && (r_adjr==0x01))
	{
		if(f_adjdir==1) r_adjdata=0; 
		f_adjdir=0;
		if(r_adjdata!=0) r_adjdata++;	// 反转 加速
	}

	if((r_adjr==0x02) && (r_adjl==0x00))
	{
		if(f_adjdir==0) r_adjdata=0;
		f_adjdir=1;
		r_adjdata++;		// 正转
	}
	if((r_adjr==0x00) && (r_adjl==0x01))
	{
		if(f_adjdir==0) r_adjdata=0;
		f_adjdir=1;
		if(r_adjdata!=0) r_adjdata++;		// 正转 加速
	}
if(bSharedInfo(SI_INIT_STATE)==SV_LOADING_DISC)
	return 0xff;
	
	if(r_adjdata!=0) 
	{
		r_adjdata--;
		if(f_adjdir==1) 
			return(IR_VOLUME_DOWN);		// 正转
		else 
			return(IR_VOLUME_UP);					// 反转
	}
	else return(0xff);

}
#endif
#else
BYTE bAmpVfdReadSw(void) large
{
	BYTE xdata bData1;
	BYTE xdata bData2 = IR_NONE;
static xdata bData0=0;
	BYTE i,bTmp=0;
	BYTE xdata bKey[3];
	
	vI2CDelay2us(0xf0);
	//vVfdStrobe(FALSE);
STROBE_PIN = 0; 
	vI2CDelay2us(0xf0);
	//vVfdUpdate(0x42);
 vKeyReadVol(0x42);
	for(i=0;i<3;i++)
	{
	bKey[i]=bVfdRead();
	}
	//vVfdStrobe(TRUE);
	vI2CDelay2us(0xf0);
STROBE_PIN = 1; 
	vI2CDelay2us(0xf0);
	bData1 = bKey[2]&0x03;
	//bData1 = bData1 | bKey[2]&0x01;

if(bData1!=bData0)
{
	vI2CDelay2us(0xf0);
	//vVfdStrobe(FALSE);
STROBE_PIN = 0; 
	vI2CDelay2us(0xf0);
	//vVfdUpdate(0x42);
 vKeyReadVol(0x42);
	for(i=0;i<3;i++)
	{
	bKey[i]=bVfdRead();
	}
	//vVfdStrobe(TRUE);
	vI2CDelay2us(0xf0);
STROBE_PIN = 1; 
	vI2CDelay2us(0xf0);
bData1 = bKey[2]&0x03;
bData0=bData1;
_bLoopSwitchState = EV_LPSW_RESET;
return(IR_NONE);
}
/*else  if(bData0==bData1)&&(bData1!=0)
{

}*/
	//bData0|=bData1;
	//bData0&=0x0f;
	switch (_bLoopSwitchState)
	{
		case EV_LPSW_RESET:
			if(bData1 == CODE_STATE_0)
			{
				bData2 = IR_VOLUME_DOWN;
				_bLoopSwitchState = EV_LPSW_END;
			}
			else  if((bData1 == CODE_STATE_1)/*&&(bData0==0x0a)*/)
			{
				bData2 = IR_VOLUME_UP;
				_bLoopSwitchState = EV_LPSW_END;
			}
		break;
		
		case EV_LPSW_END:
			if(bData1 == CODE_STATE_2)
			{
				_bLoopSwitchState = EV_LPSW_RESET;
			}
		break;
		
		default:
			_bLoopSwitchState = EV_LPSW_RESET;
		break;
	}
	
	return(bData2);

}
#endif

#if 0
BYTE bAmpVfdReadSw(void) large
{
	BYTE xdata bData1;
	BYTE xdata bData2 = IR_NONE;
	BYTE  i;
	BYTE xdata bData[3];
	if (fgIsInSetupMenu())
	{
		return(bData2);
	}

  vVfdStrobe(FALSE);         // begin to write the VFD command
  vVfdUpdate(0x02);
  vVfdStrobe(TRUE);          // strobe pull high to release the mode set
  
  vVfdStrobe(FALSE);         // begin to write the VFD command
  vVfdUpdate(0xcf);
  vVfdStrobe(TRUE);          // strobe pull high to release the mode set

  vVfdStrobe(FALSE);         // begin to write the VFD command
  vVfdUpdate(MODESET);
  vVfdStrobe(TRUE);          // strobe pull high to release the mode set
  
  vVfdStrobe(FALSE);         // begin to write the VFD command
  vVfdUpdate(VFD_CONTROL);
  _bVfdPulseLvl = VFD_CONTROL;
  vVfdStrobe(TRUE);          // strobe pull high to release the mode set

  vVfdStrobe(FALSE);         // begin to write the VFD command
  vVfdUpdate(KEY_SCAN);
  vVfdClk(TRUE);          // waiting for the Twait (1 us)

  vVfdData(TRUE);          // pull the data inout line to high
  vVfdClk(TRUE);

  for(i = 0; i < SCANSIZE; i++)      // how many bits we should scan here
  {
    vVfdClk(FALSE);
    vVfdClk(FALSE);   // may can be removed
    vVfdClk(TRUE);

    // get the bits from the datout pin
    if(DATA_PIN)
    {
      if(!_fgVfdHold)
      {
      if(i==16)	bData1=1;
     		  
        _bVfdKeyScan = _pbVfdKeyScan[i];
	//DRS232LogB(i,0,0,0);	
        _fgVfdHold = TRUE;
      }
      fgRelease = FALSE;
    }
    vVfdClk(TRUE);   // to prevent clear clock to fast, maybe can be removed
  }
  vVfdStrobe(TRUE);     // pull the strobe to high


	SetReadCoderIo1();
	SetReadCoderIo2();
	bData1 = ReadCoderIo1();
	bData1 = bData1 | ReadCoderIo2();

	switch (_bLoopSwitchState)
	{
		case EV_LPSW_RESET:
			if(bData1 == CODE_STATE_0)
			{
				bData2 = IR_AMP_CHANNEL_DN;
				_bLoopSwitchState = EV_LPSW_END;
			}
			else  if(bData1 == CODE_STATE_1)
			{
				bData2 = IR_AMP_CHANNEL_UP;
				_bLoopSwitchState = EV_LPSW_END;
			}
		break;
		
		case EV_LPSW_END:
			if(bData1 == CODE_STATE_2)
			{
				_bLoopSwitchState = EV_LPSW_RESET;
			}
		break;
		
		default:
			_bLoopSwitchState = EV_LPSW_RESET;
		break;
	}
	
	return(bData2);
}
#endif
#ifdef TIME_SLEEP_FUCTION
/***************************************************************************************
    Function : 
    Description : 
    Parameter : 
    Return    : 
***************************************************************************************/
void vAmpSleepTimer(void) large 
{
	if (_bSleepOSDTimer > 0) 
	{		
		_bSleepOSDTimer --;
		if(_bSleepOSDTimer == 25) 
			{
				if(_fgFlashing == TRUE) _fgFlashing = FALSE;
				else _fgFlashing = TRUE;
			}
	}
	else 
	{
		_bSleepOSDTimer = 50;
		if(_fgFlashing == TRUE) _fgFlashing = FALSE;
		else _fgFlashing = TRUE;
		
		if(_bVfdCounter > 0)
		{
			_bVfdCounter --;
		}
		else
		{
			_bVfdCounter = 0;
		}
		
		if(_bSleepOSDCounter > 0) 
		{
			_bSleepOSDCounter--;
		}
		
		if(_bSleepOSDCounter == 1) 
		{
			//if(_bSysState == DVD_STATE)
			{
				if((_bSetSleepState == SLEEP_OFF)) 
				{
					vAmpOsdClearSleepTime();
				}
			}
		}
		if(_bSleepOSDCounter == 0) 
		{ 
			//if(_bSysState == DVD_STATE)
			{
				if((_bSetSleepState>1 ) && (_bSetSleepState<9)) 
				{
					vAmpOsdClearSleepTime();
				}
			}

			if(_bSetSleepState != SLEEP_OFF) _bSetSleepState = SLEEP_ON;  	
		}

		if(_wSleepCounter > 0) 
		{
			_wSleepCounter --;
		}
		if(_wSleepCounter == 0) 
		{
			if(_bSetSleepState != SLEEP_OFF) 
			{
				_fgPowerDown = TRUE;
			}
		}
	}
}

/***************************************************************************************
    Function : 
    Description : 
    Parameter : 
    Return    : 
***************************************************************************************/
BOOL fgAmpSetSleepKey(void) large 
{
	switch(_bSetSleepState)
	{
		case SLEEP_ON:
			_bSetSleepState = SLEEP_ON_DISPLAY;
			_bSleepOSDCounter = 4;
		break;

		case SLEEP_ON_DISPLAY:
			_bSetSleepState = SLEEP_90M;
			_wSleepCounter = 91 * SLEEP_TIME_ADJUST_LEVEL -1;
			_bSleepOSDCounter = 4;
		break;

		case SLEEP_OFF:
			_bSetSleepState = SLEEP_90M;
			_wSleepCounter = 91 * SLEEP_TIME_ADJUST_LEVEL -1;
			_bSleepOSDCounter = 4;
		break;

		case SLEEP_90M:
			_bSetSleepState = SLEEP_75M;
			_wSleepCounter = 76 * SLEEP_TIME_ADJUST_LEVEL -1;
			_bSleepOSDCounter = 4;
		break;

		case SLEEP_75M:
			_bSetSleepState = SLEEP_60M;
			_wSleepCounter = 61 * SLEEP_TIME_ADJUST_LEVEL -1;
			_bSleepOSDCounter = 4;
		break;

		case SLEEP_60M:
			_bSetSleepState = SLEEP_45M;
			_wSleepCounter = 46 * SLEEP_TIME_ADJUST_LEVEL -1;
			_bSleepOSDCounter = 4;
		break;


		case SLEEP_45M:
			_bSetSleepState = SLEEP_30M;
			_wSleepCounter = 31*SLEEP_TIME_ADJUST_LEVEL -1;
			_bSleepOSDCounter = 4;
		break;

		case SLEEP_30M:
			_bSetSleepState = SLEEP_15M;
			_wSleepCounter = 16*SLEEP_TIME_ADJUST_LEVEL -1;
			_bSleepOSDCounter = 4;
		break;

		case SLEEP_15M:
			_bSetSleepState = SLEEP_OFF;
			_wSleepCounter = 0;
			_bSleepOSDCounter = 4;
		break;

		default:
			_bSetSleepState = SLEEP_OFF;
			_wSleepCounter = 0;
			_bSleepOSDCounter = 4;
		break;
	}


	vAmpOsdShowSleepTime();
	vAmpVfdShowSleepTime();

	_bIRKey = IR_NONE;
	return (UOP_OK);
}
#endif
#if  0//def  THREESTATE_ADD
/***************************************************************************************
    Function : 
    Description : 
    Parameter : 
    Return    : 
***************************************************************************************/
BOOL fgAmpAuxStateSwitch(void) large
{
	BOOL fgRet = UOP_OK;
	
	switch(_bAuxState)
		{
		case  AUX_TV:
			
		break;
		case  AUX_GENERAL:
		break;
		case  AUX_TUNER:
		break;
		case  AUX_MP3:
		break;
		}



	_bIRKey = IR_NONE;
	return(fgRet);
}

#endif
#endif

⌨️ 快捷键说明

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