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

📄 task.c

📁 CS8955控制TV软件。用MCU做模拟电视的控制。
💻 C
字号:
/******************************************************************************\
     Project Version:   MTKCARDVD()
********************************************************************************
     Filename:          MAIN.c

     Author:            Alan chan

     Company:           CoreTek/ACT Company

********************************************************************************
     File Version:      1.01
     File Created:      July 2007

     Compiled Using:    keil uVision2 Version 2.23 

********************************************************************************
     Files Required:

********************************************************************************
     File Description:

********************************************************************************
     File History:

--------------------------------------------------------------------------------
  Date         Name           Description
--------------------------------------------------------------------------------
  Mar. 2007    Alan Chan    File Created
  
\******************************************************************************/
#include "stdio.h"

#include "global.h"
#include "irkey.h"
#include "key.h"

#include "tv.h"
#include "task.h"

extern void vInitCPU(BIT OnOff);
extern void DRS232LogB(BYTE bV1, BYTE bV2, BYTE bV3, BYTE bV4);
void TVRaCurrDataOut()
{          
BYTE i,chksum=0;
{      
		   DataOut[1] = bDisplaMode;	
		 //  #ifdef MARTIN_MCU_AND_DVD_PROTOCOL
                    DataOut[2] = bTvTotalCh;   //btesttvIf; //bTvTotalCh;	  05Jun08 test
		 //  #endif	
	          	DataOut[3] = 0x00;
                   	 if (_fgSearchDir == UP_SEARCH)
	              	DataOut[3] |= 0x08;                   	
	            	if (_bSearchMode == SEARCH_SCAN)
	            		DataOut[3] |= 0x01;			
	            	else if (_bSearchMode == SEARCH_SEEK)
	              	DataOut[3] |= 0x02;		
	            	else if (_bSearchMode == SEARCH_STEP)
	             		DataOut[3] |= 0x03;			

		     	DataOut[4] = bTvCurrChIndex;
  		     	DataOut[5] = bTvCurrSound;
	            	DataOut[6] =(BYTE)((_sTunerPLL.wDB>>8) & 0xff);  //0x1f; // 
	            	DataOut[7] =(BYTE)(_sTunerPLL.wDB & 0x00ff);	 //0xe2;//         		
			DataOut[8] =  _bSearchPercent & 0xff;	  //btesttvPll;  //03Jul08 
                   #ifdef MARTIN_MODIFY_AUTO_SCAN
			//	DataOut[9] = _bSearchCnt;	
		   #endif		   
			DataOut[9] =btesttvIf; // btesttvPll; //btesttvIf;   //bTempStroIndex;  // btesttvPll; //bVideoCheck;	 //04Jun08 test
		      DataOut[10] = (sTvCurrChannel.bSystem & 0x47);						
		     bDisplaMode=0x00;		 
		}
		 

	    for (i=1;i<COMDVD_BYTE;i++)
       		chksum += DataOut[i];
       	DataOut[0] = chksum;  
}



// 100ms tasks
void TaskProc(void)
{
#ifndef MARTIN_MODIFY_UPDATE_DATA   //06Jun08
    BYTE  i, chksum;
#endif
#ifndef MARTIN_SYSTEM_ONLY_TVMODE  //martin 08May08
    BYTE bTemp;
#endif


#ifdef MARTIN_MCU_AND_DVD_PROTOCOL
  if((ShadowDvdInfo[0] != 0xff)&&(ShadowDvdInfo[0] != 0x00)/*&&(ShadowDvdInfo[0]>=0x01)&&(ShadowDvdInfo[0]<IR_KEY_MAX)*/)
  	{
          btesttvIf=0x00;   
          _bIRKey0=ShadowDvdInfo[0];
	   ShadowDvdInfo[0]=0xff;
  	}
#endif
     

    #ifndef MARTIN_MCU_NO_IR  //martin 08May08 disable IR 
	if(fgLongOrShortKey)
       {
       		if(_bRemoteTimer<=5)
       		{     			
				fgLongOrShortKey = 0;
				if(LongPushCount>10)
					_bIRKey0 = Key2IR(1,_bIRLongPush);
				else	
					_bIRKey0 = Key2IR(0,_bIRLongPush);
				LongPushCount = 0;	
       			_fgIRKeyValid = TRUE;
       		}
    	} 	
	#endif
    	// key process	
    	//02Jun08 if (_bIRKey0!=IR_NONE) 
    	if ((_bIRKey0!=IR_NONE)||(bTempIrKey!=IR_NONE)) 
    	{
    	                    
        //            DRS232LogB(bTvCurrChIndex,sTvCurrChannel.bSystem,bTvCurrSound,_bIRKey0);  //07Oct08		

   	       btesttvIf=_bIRKey0;
       	KeyProcess();
		
       }			
       // prepare mcu cmd
//    TVRaCurrDataOut();
       
#ifndef MARTIN_SYSTEM_ONLY_TVMODE  //09May08
    	// power down
    	if ((SysMode!=PWR_DOWN_MODE) && (DvdRxBuf[1]==0x3f))
    	{
		PowerDownSaveToE2prom();
		EA = 0;         //disable all interrupt	
       	// power down
         	// power down mode
	  	vInitCPU(OFF);	 
	  	TR0=1;   // start timer0
  		EX0 = 1;
                EX1 = 0;
  		ES = 0;
  		EA = 1;         //enable all interrupt	  			
	  	SysMode = NextSysMode = PWR_DOWN_MODE;

		return;
    	}
#endif
}

⌨️ 快捷键说明

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