📄 sphe8202a_6500.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 + -