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

📄 sphe8202a_6500.c

📁 SPHE8202A初始化代码建议下载建议下载建议下载建议下载建议下载建议下载建议下载建议下载
💻 C
字号:
//---------------------------------------------------------------------------
//LOONGNEN Design House ,Confidential Strictly Private
////////超越自我,创新未来,自强不息 ///////////////////
//  龙能科技
// $Archive: sphe8202a_6500.c $
// $Revision: 1.0 $
// $Author: GANDY HUANG $
// $Date: 2008/5/28 10:40:01 $
//
// --------------------------------------------------------------------------
// >>>>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
// --------------------------------------------------------------------------
// Copyright 2008(c)  Loongnen tech. 
// This is an unpublished work.
// --------------------------------------------------------------------------
////////update version content here////////////////////////



///////////////////////////////////////////////////////

#if !defined(__SPHE8202A_6500_C__)
#define __SPHE8202A_6500_C__
#include "system.h"   //INSIDE INCLUDE "vendor.h" !!!!!!


#ifdef SPHE8202A_6500_MODULE

//*********Include files  *****************//

#include "SPHE8202A_6500.h"


//gbSp8202aValueBuff  USE AS  BUFFER THAT RECEIVED FROM sp8202A'S COMMAND VALUE BY SPI 3WIRE MODE
//buffer 1st  byte is flag for full or empty 
//buffer 2nd byte is stored value 
//buffer 3rd byte is reserved
//buffer 4th byte is reserved


UINT8 idata gbSp8202aValueBuff[MAX_BUFF][4]={{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0}};



//#define wWAIT_TIME_SMALL1  16 //140  US//CHANGE FOR SPH8104T CORRECT READ FIRAT BIT DATA
//#define wWAIT_TIME_SMALL2  16 //140 US

//*********Macro Definition**********//
UINT8 idata bVlaue=0;

UINT8 idata gbGetValue[4];
//extern UINT8 idata gbTrackValue;
//extern UINT8 idata gbIpodPlaying;

#define  bGetValueFromSp8202a()  {\
	            bMask=0x01;\
                   wTime=wWAIT_TIME;\
                   VFD_DATA=1;\
                   bVlaue=0;\
                   for(i=0;i<8;i++) \
			{\
                        while((VFD_CLK==1)&&(wTime--)) ;\ 
                        while((VFD_CLK==0)&&(wTime--)) ;\ 
                        if(VFD_DATA==1)\ 
				bVlaue|=bMask ;\
                        bMask<<=1;\
			}\
} 

#define vSendDataToSP8202a() {\
           wTime=wWAIT_TIME;\
           for(i=0;i<8;i++)\
           	{\
                 while((VFD_CLK==1)&&(wTime--)) ;\
                 if(gbGetValue[1]&0x01) VFD_DATA=1;\             
		   else \
	   	       VFD_DATA=0;	\	 
                  gbGetValue[1]>>=1;\
                 while((VFD_CLK==0)&&(wTime--)) ;\
          	 }\
}



//////////////////////////////////////////////////////////////////////

void vSp8202aInit(void) 
{

	INT1=1;
	IT1=1; //脉冲触发
	EX1=1; // enable ex interrupt 1 //GAN TEST ????

       VFD_CLK= 1;
       VFD_STB= 1; //INT1
       VFD_DATA= 1;

}



//===================================================================
void vInt1GetSp8202aCom(void) interrupt 2 //small// vfd_stb 
{
 UINT16 idata wTime;
 UINT8 idata i,bMask;
 UINT8 idata bBuff=0,k=0;

  EX1=0;

    bGetValueFromSp8202a();  //从SP8202A 读到第一个值
    gbGetValue[0]=bVlaue;

    switch(gbGetValue[0])
  	{


         case COMMAND_WIRTE_VALUE:  //sp8202a write value to mcu
               bGetValueFromSp8202a();   //从SP8202A 读到第二个值
               gbGetValue[1]=bVlaue;
               //   gbGetValue[2]=0;  //place
              // vDisplay8104t(COMMAND_DISPLAY_ON,gbGetValue[1],gbGetValue[2],ON);
             if (( gbGetValue[1]>=2)&&( gbGetValue[1]<=MCU_VGEN_CROSSHATCH))  //key value num
          	{
			for(k=0;k<MAX_BUFF;k++)
	              {
	                 if( gbSp8202aValueBuff[k][0]==IS_EMPTY)
	                  {
	                     // gbSp8202aValueBuff[k][0]=IS_FULL;
	                     // gbSp8202aValueBuff[k][1]=gbGetValue[1]; //command
	                     // gbSp8202aValueBuff[k][2]=gbGetValue[2];  //plcae
	                     // gbSp8202aValueBuff[k][3]=gbGetValue[3];  //number
	                      break;
	                  }
	              }

		  }
			break;

          case COMMAND_READ_KEY:    //sp8202a read value from mcu

	          gbGetValue[1]=NO_MCU_KEYVALUE; //if buff no  keyvalue,then mcu send NO_MCU_KEYVALUE to sp8202a
             for(k=0;k<MAX_BUFF;k++)
              {
                 if( gbPcValueBuff[k][0]== IS_FULL  )
                  {
                      gbPcValueBuff[k][0]=IS_EMPTY;//发出VALUE后BUFFER复位为空
                      gbGetValue[1]=gbPcValueBuff[k][1]; //VALUE
                     // gb8104tValueBuff[k][2]=gbGetValue[1];  //plcae
                     // gb8104tValueBuff[k][3]=gbGetValue[2];  //number
                       break;
                  }
              }

               vSendDataToSP8202a(); //从mcu 发送给SP8202A 第二个值

              
			break;

         default:
		 break;

  	}

  EX1=1; //gan test

}


//=================================================================


//===================================================================




//=================================================================



















#endif//SPHE8202A_MODULE

#endif // __SPHE8202A_6500_C__

/*------------------------ Nothing Below This Line --------------------------*/

⌨️ 快捷键说明

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