894 lines
44 KiB
C++
894 lines
44 KiB
C++
#include "MAIN.h"
|
||
|
||
//*****************************************************************************
|
||
//ºê¶¨Òå
|
||
//*****************************************************************************
|
||
//¶àÓà20ƬÐèÒªÔö¼Ó
|
||
#define Mc33993_0 0
|
||
#define Mc33993_1 1
|
||
#define Mc33993_2 2
|
||
#define Mc33993_3 3
|
||
#define Mc33993_4 4
|
||
#define Mc33993_5 5
|
||
#define Mc33993_6 6
|
||
#define Mc33993_7 7
|
||
#define Mc33993_8 8
|
||
#define Mc33993_9 9
|
||
#define Mc33993_10 10
|
||
#define Mc33993_11 11
|
||
#define Mc33993_12 12
|
||
#define Mc33993_13 13
|
||
#define Mc33993_14 14
|
||
#define Mc33993_15 15
|
||
#define Mc33993_16 16
|
||
#define Mc33993_17 17
|
||
#define Mc33993_18 18
|
||
#define Mc33993_19 19
|
||
#define Mc33993_20 20
|
||
|
||
|
||
#define D24V 0
|
||
#define Gnd 1
|
||
|
||
#define TriOff 0
|
||
#define TriOn 1
|
||
|
||
#define WetCur2mA 0
|
||
#define WetCur16mA 1
|
||
|
||
#define SwToGnd 0
|
||
#define SwToPwr 1
|
||
|
||
#define ALLTRI 0xff
|
||
#define ALLD24V 0x0
|
||
|
||
#define DF_CMDSWSTATUS 0x00
|
||
#define DF_CMDSETTING 0x01
|
||
#define DF_CMDINT_SP 0x02
|
||
#define DF_CMDINT_SG 0x03
|
||
#define DF_CMDMETALLIC_SP 0x04
|
||
#define DF_CMDMETALLIC_SG 0x05
|
||
#define DF_CMDANALOG 0x06
|
||
#define DF_CMDWETCURR_SP 0x07
|
||
#define DF_CMDWETCURR_SG 0x08
|
||
#define DF_CMDTRISTATE_SP 0x09
|
||
#define DF_CMDTRISTATE_SG 0x0A
|
||
#define DF_CMDCALIBRATION 0x0B
|
||
#define DF_CMDSLEEP 0x0C
|
||
#define DF_CMDRESET 0x7F
|
||
|
||
|
||
#define DF_FLGTHEM 10
|
||
#define DF_FLGINT 11
|
||
#define DF_FLGSP7 12
|
||
#define DF_FLGSP6 13
|
||
#define DF_FLGSP5 14
|
||
#define DF_FLGSP4 15
|
||
#define DF_FLGSP3 16
|
||
#define DF_FLGSP2 17
|
||
#define DF_FLGSP1 18
|
||
#define DF_FLGSP0 19
|
||
#define DF_FLGSG13 20
|
||
#define DF_FLGSG12 21
|
||
#define DF_FLGSG11 22
|
||
#define DF_FLGSG10 23
|
||
#define DF_FLGSG9 24
|
||
#define DF_FLGSG8 25
|
||
#define DF_FLGSG7 26
|
||
#define DF_FLGSG6 27
|
||
#define DF_FLGSG5 28
|
||
#define DF_FLGSG4 29
|
||
#define DF_FLGSG3 30
|
||
#define DF_FLGSG2 31
|
||
#define DF_FLGSG1 32
|
||
#define DF_FLGSG0 33
|
||
|
||
//Analog
|
||
#define DF_AN_HIMP 1
|
||
#define DF_AN_2MA 2
|
||
#define DF_AN_16MA 3
|
||
|
||
#define DF_CH_SG0 1
|
||
#define DF_CH_SG1 2
|
||
#define DF_CH_SG2 3
|
||
#define DF_CH_SG3 4
|
||
#define DF_CH_SG4 5
|
||
#define DF_CH_SG5 6
|
||
#define DF_CH_SG6 7
|
||
#define DF_CH_SG7 8
|
||
#define DF_CH_SG8 9
|
||
#define DF_CH_SG9 10
|
||
#define DF_CH_SG10 11
|
||
#define DF_CH_SG11 12
|
||
#define DF_CH_SG12 13
|
||
#define DF_CH_SG13 14
|
||
#define DF_CH_SP0 15
|
||
#define DF_CH_SP1 16
|
||
#define DF_CH_SP2 17
|
||
#define DF_CH_SP3 18
|
||
#define DF_CH_SP4 19
|
||
#define DF_CH_SP5 20
|
||
#define DF_CH_SP6 21
|
||
#define DF_CH_SP7 22
|
||
|
||
//*****************************************************************************
|
||
//Êý¾Ý½á¹¹
|
||
//*****************************************************************************
|
||
//ÿ¸ö33993µÄ¿ª¹ØÃüÁî״̬£¬ÓÉÓÚµôµç»òÕ߸ÉÈŵ¼ÖÂ33993ÄÚ²¿¸´Î»Ê±£¬¿ÉÒÔÓøÃ״̬»Ö¸´¡£
|
||
struct StaMc33993CmdSet
|
||
{
|
||
unsigned char CmdSetting ;
|
||
unsigned char CmdInt_Sp ;
|
||
unsigned int CmdInt_Sg ;
|
||
unsigned char CmdMetallic_Sp ;
|
||
unsigned int CmdMetallic_Sg ;
|
||
unsigned char CmdWetCurr_Sp ;
|
||
unsigned int CmdWetCurr_Sg ;
|
||
unsigned char CmdTriState_Sp ;
|
||
unsigned int CmdTriState_Sg ;
|
||
unsigned char CmdAnalog ;
|
||
};
|
||
//33993µÄ¿ª¹Ø×´Ì¬£¬¿ÉÒÔ²ÉÓÃ×Ö½Ú·ÃÎÊ£¬Ò²¿ÉÒÔ°´Î»·ÃÎÊ//XC886²»Ò»Ñù£¬ÐÞ¸Ä
|
||
union ByteBitAccess
|
||
{
|
||
struct
|
||
{
|
||
ubyte SoMc33993Byte1;
|
||
ubyte SoMc33993Byte0;
|
||
ubyte SoMc33993Byte3;
|
||
ubyte SoMc33993Byte2;
|
||
}ByteData;
|
||
struct
|
||
{
|
||
unsigned int FlgSg0 : 1;
|
||
unsigned int FlgSg1 : 1;
|
||
unsigned int FlgSg2 : 1;
|
||
unsigned int FlgSg3 : 1;
|
||
unsigned int FlgSg4 : 1;
|
||
unsigned int FlgSg5 : 1;
|
||
unsigned int FlgSg6 : 1;
|
||
unsigned int FlgSg7 : 1;
|
||
unsigned int FlgSg8 : 1;
|
||
unsigned int FlgSg9 : 1;
|
||
unsigned int FlgSg10 : 1;
|
||
unsigned int FlgSg11 : 1;
|
||
unsigned int FlgSg12 : 1;
|
||
unsigned int FlgSg13 : 1;
|
||
unsigned int FlgSp0 : 1;
|
||
unsigned int FlgSp1 : 1;
|
||
unsigned int FlgSp2 : 1;
|
||
unsigned int FlgSp3 : 1;
|
||
unsigned int FlgSp4 : 1;
|
||
unsigned int FlgSp5 : 1;
|
||
unsigned int FlgSp6 : 1;
|
||
unsigned int FlgSp7 : 1;
|
||
unsigned int FlgInt : 1;
|
||
unsigned int FlgThem : 1;
|
||
unsigned int : 8;
|
||
}BitData;
|
||
};
|
||
//33993µÄ¿ª¹Ø×´Ì¬£¬¿ÉÒÔ²ÉÓÃ×Ö½Ú·ÃÎÊ£¬Ò²¿ÉÒÔ°´Î»·ÃÎÊ
|
||
union WordByteBitAccess
|
||
{
|
||
uword StaSg;
|
||
struct
|
||
{
|
||
ubyte StaSgH;
|
||
ubyte StaSgL;
|
||
}ByteData;
|
||
struct
|
||
{
|
||
unsigned int FlgSg0_FlgSp0 : 1;
|
||
unsigned int FlgSg1_FlgSp1 : 1;
|
||
unsigned int FlgSg2_FlgSp2 : 1;
|
||
unsigned int FlgSg3_FlgSp3 : 1;
|
||
unsigned int FlgSg4_FlgSp4 : 1;
|
||
unsigned int FlgSg5_FlgSp5 : 1;
|
||
unsigned int FlgSg6_FlgSp6 : 1;
|
||
unsigned int FlgSg7_FlgSp7 : 1;
|
||
unsigned int FlgSg8 : 1;
|
||
unsigned int FlgSg9 : 1;
|
||
unsigned int FlgSg10 : 1;
|
||
unsigned int FlgSg11 : 1;
|
||
unsigned int FlgSg12 : 1;
|
||
unsigned int FlgSg13 : 1;
|
||
unsigned int : 1;
|
||
unsigned int : 1;
|
||
}BitData;
|
||
};
|
||
//*****************************************************************************
|
||
//È«¾Ö±äÁ¿
|
||
//*****************************************************************************
|
||
static struct StaMc33993CmdSet PntSta[2] = {0};
|
||
//*****************************************************************************
|
||
//±¾ÎļþÈ«¾Öº¯ÊýÉùÃ÷
|
||
//*****************************************************************************
|
||
bit Mc33993StaRcvOneBit(ubyte NumMc,ubyte Sp0ToSg13);
|
||
ubyte Mc33993CmdSendOneBit(ubyte NumMc,ubyte CmdBit,ubyte Sp0ToSg13,bit Status);
|
||
void InitMc33993Sec(void);
|
||
void ToggleOneBit(ubyte NumMc,ubyte CmdBit,ubyte Sp0ToSg13);
|
||
ubyte Mc33993AnalogChSel(ubyte NumMc,ubyte Mode,ubyte Channal);
|
||
union ByteBitAccess *Mc33993CmdSend(ubyte NumMc,ubyte CmdBit,ubyte SetBitH,ubyte SetBitL);
|
||
|
||
|
||
|
||
|
||
|
||
|
||
//---------------------------------------------------
|
||
|
||
//*****************************************************************************
|
||
//º¯Êý
|
||
//*****************************************************************************
|
||
void Swtest2(void)
|
||
{
|
||
ulong i,j;
|
||
|
||
UnSwOut_1.BitData.S21 = 1;LedLight(&UnSwOut_1); for(j=0;j<200;j++){for(i=0;i<133;i++);}
|
||
UnSwOut_1.BitData.S22 = 1;LedLight(&UnSwOut_1); for(j=0;j<200;j++){for(i=0;i<133;i++);}
|
||
UnSwOut_1.BitData.S23 = 1;LedLight(&UnSwOut_1); for(j=0;j<200;j++){for(i=0;i<133;i++);}
|
||
UnSwOut_1.BitData.S24 = 1;LedLight(&UnSwOut_1); for(j=0;j<200;j++){for(i=0;i<133;i++);}
|
||
UnSwOut_1.BitData.S25 = 1;LedLight(&UnSwOut_1); for(j=0;j<200;j++){for(i=0;i<133;i++);}
|
||
UnSwOut_1.BitData.S26 = 1;LedLight(&UnSwOut_1); for(j=0;j<200;j++){for(i=0;i<133;i++);}
|
||
UnSwOut_1.BitData.S27 = 1;LedLight(&UnSwOut_1); for(j=0;j<200;j++){for(i=0;i<133;i++);}
|
||
UnSwOut_1.BitData.S28 = 1;LedLight(&UnSwOut_1); for(j=0;j<200;j++){for(i=0;i<133;i++);}
|
||
UnSwOut_1.BitData.S29 = 1;LedLight(&UnSwOut_1); for(j=0;j<200;j++){for(i=0;i<133;i++);}
|
||
UnSwOut_1.BitData.S30 = 1;LedLight(&UnSwOut_1); for(j=0;j<200;j++){for(i=0;i<133;i++);}
|
||
UnSwOut_1.BitData.S31 = 1;LedLight(&UnSwOut_1); for(j=0;j<200;j++){for(i=0;i<133;i++);}
|
||
UnSwOut_1.BitData.S32 = 1;LedLight(&UnSwOut_1); for(j=0;j<200;j++){for(i=0;i<133;i++);}
|
||
UnSwOut_1.BitData.S33 = 1;LedLight(&UnSwOut_1); for(j=0;j<200;j++){for(i=0;i<133;i++);}
|
||
UnSwOut_1.BitData.S34 = 1;LedLight(&UnSwOut_1); for(j=0;j<200;j++){for(i=0;i<133;i++);}
|
||
UnSwOut_1.BitData.S35 = 1;LedLight(&UnSwOut_1); for(j=0;j<200;j++){for(i=0;i<133;i++);}
|
||
UnSwOut_1.BitData.S36 = 1;LedLight(&UnSwOut_1); for(j=0;j<200;j++){for(i=0;i<133;i++);}
|
||
UnSwOut_1.BitData.S37 = 1;LedLight(&UnSwOut_1); for(j=0;j<200;j++){for(i=0;i<133;i++);}
|
||
UnSwOut_1.BitData.S38 = 1;LedLight(&UnSwOut_1); for(j=0;j<200;j++){for(i=0;i<133;i++);}
|
||
UnSwOut_1.BitData.S39 = 1;LedLight(&UnSwOut_1); for(j=0;j<200;j++){for(i=0;i<133;i++);}
|
||
UnSwOut_1.BitData.S40 = 1;LedLight(&UnSwOut_1); for(j=0;j<200;j++){for(i=0;i<133;i++);}
|
||
|
||
UnSwOut_1.BitData.S21 = 0;LedLight(&UnSwOut_1); for(j=0;j<200;j++){for(i=0;i<133;i++);}
|
||
UnSwOut_1.BitData.S22 = 0;LedLight(&UnSwOut_1); for(j=0;j<200;j++){for(i=0;i<133;i++);}
|
||
UnSwOut_1.BitData.S23 = 0;LedLight(&UnSwOut_1); for(j=0;j<200;j++){for(i=0;i<133;i++);}
|
||
UnSwOut_1.BitData.S24 = 0;LedLight(&UnSwOut_1); for(j=0;j<200;j++){for(i=0;i<133;i++);}
|
||
UnSwOut_1.BitData.S25 = 0;LedLight(&UnSwOut_1); for(j=0;j<200;j++){for(i=0;i<133;i++);}
|
||
UnSwOut_1.BitData.S26 = 0;LedLight(&UnSwOut_1); for(j=0;j<200;j++){for(i=0;i<133;i++);}
|
||
UnSwOut_1.BitData.S27 = 0;LedLight(&UnSwOut_1); for(j=0;j<200;j++){for(i=0;i<133;i++);}
|
||
UnSwOut_1.BitData.S28 = 0;LedLight(&UnSwOut_1); for(j=0;j<200;j++){for(i=0;i<133;i++);}
|
||
UnSwOut_1.BitData.S29 = 0;LedLight(&UnSwOut_1); for(j=0;j<200;j++){for(i=0;i<133;i++);}
|
||
UnSwOut_1.BitData.S30 = 0;LedLight(&UnSwOut_1); for(j=0;j<200;j++){for(i=0;i<133;i++);}
|
||
UnSwOut_1.BitData.S31 = 0;LedLight(&UnSwOut_1); for(j=0;j<200;j++){for(i=0;i<133;i++);}
|
||
UnSwOut_1.BitData.S32 = 0;LedLight(&UnSwOut_1); for(j=0;j<200;j++){for(i=0;i<133;i++);}
|
||
UnSwOut_1.BitData.S33 = 0;LedLight(&UnSwOut_1); for(j=0;j<200;j++){for(i=0;i<133;i++);}
|
||
UnSwOut_1.BitData.S34 = 0;LedLight(&UnSwOut_1); for(j=0;j<200;j++){for(i=0;i<133;i++);}
|
||
UnSwOut_1.BitData.S35 = 0;LedLight(&UnSwOut_1); for(j=0;j<200;j++){for(i=0;i<133;i++);}
|
||
UnSwOut_1.BitData.S36 = 0;LedLight(&UnSwOut_1); for(j=0;j<200;j++){for(i=0;i<133;i++);}
|
||
UnSwOut_1.BitData.S37 = 0;LedLight(&UnSwOut_1); for(j=0;j<200;j++){for(i=0;i<133;i++);}
|
||
UnSwOut_1.BitData.S38 = 0;LedLight(&UnSwOut_1); for(j=0;j<200;j++){for(i=0;i<133;i++);}
|
||
UnSwOut_1.BitData.S39 = 0;LedLight(&UnSwOut_1); for(j=0;j<200;j++){for(i=0;i<133;i++);}
|
||
UnSwOut_1.BitData.S40 = 0;LedLight(&UnSwOut_1); for(j=0;j<200;j++){for(i=0;i<133;i++);}
|
||
|
||
|
||
}
|
||
|
||
//****************************************************************************
|
||
// @Function void SwStaSample(UnSwSample *ptmp,ubyte NumSampleChip)
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Description ²É¼¯33993µÄ¿ª¹ØÐźš£
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Returnvalue None
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Parameters ptmp£¬´æ·ÅÊý¾Ý½á¹¹ÌåÖ¸Õ룬NumSampleChip£¬33993оƬÊýÁ¿
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Date 2008-12-2
|
||
//
|
||
//****************************************************************************
|
||
void SwStaSample(UnSwSample *ptmp)
|
||
{
|
||
union ByteBitAccess *pStaSwIn;
|
||
uword i,k;
|
||
//----³õʼ»¯------------------------------------------------------------------------
|
||
InitMc33993Sec();//Ò»¸ö´óÑ»·±ØÐëµ÷ÓÃÒ»´Î£¬ÕâÑù¾ÍËã12Vµôµç»ò33993¸´Î»£¬ÂíÉÏ¿ÉÒÔ»Ö¸´¡£
|
||
//³õʼ»¯ÓÃ×÷²É¼¯µÄIO
|
||
for(i=0;i<DF_SwInNum;i++)
|
||
{for(k=0;k<10;k++);
|
||
Mc33993CmdSend(i,DF_CMDTRISTATE_SP,0,0); //0£¬½ûÖ¹Èý̬£¬Êä³ö24V
|
||
Mc33993CmdSend(i,DF_CMDTRISTATE_SG,0,0); //0£¬½ûÖ¹Èý̬£¬Êä³ö24V
|
||
//¿ª¹Ø²É¼¯
|
||
pStaSwIn = Mc33993CmdSend(i,DF_CMDSWSTATUS,0xff,0xff);
|
||
|
||
(*ptmp).ArrData.Arr[i][1] = (*pStaSwIn).ByteData.SoMc33993Byte1;
|
||
(*ptmp).ArrData.Arr[i][0] = (*pStaSwIn).ByteData.SoMc33993Byte0;
|
||
(*ptmp).ArrData.Arr[i][3] = (*pStaSwIn).ByteData.SoMc33993Byte3;
|
||
(*ptmp).ArrData.Arr[i][2] = (*pStaSwIn).ByteData.SoMc33993Byte2;
|
||
}
|
||
}
|
||
|
||
//****************************************************************************
|
||
// @Function void LedLight(UnSwOut *tmpUn)
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Description ¸ù¾Ý»º´æÄÚÈݵãÁÁÏìÓ¦LED¡£
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Returnvalue None
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Parameters tmpUn£¬´æ·ÅLEDµÄ״̬£¬1±íʾÐèÒªµãÁÁ
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Date 2008-12-2
|
||
//
|
||
//****************************************************************************
|
||
void LedLight(UnSwOut *tmpUn)
|
||
{
|
||
ubyte i,j;
|
||
//----------------------------------------------------------------------------
|
||
InitMc33993Sec();
|
||
|
||
for(i=0;i<DF_SwOutNum;i++)
|
||
{
|
||
for(j=0;j<22;j++)
|
||
{
|
||
switch(j)
|
||
{
|
||
case 0 :if(((((*tmpUn).ArrData.Arr[i][1])>>0 )&0x01) == 1)Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SP,DF_FLGSP0 ,D24V);else Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SP,DF_FLGSP0 ,Gnd);break;
|
||
case 1 :if(((((*tmpUn).ArrData.Arr[i][1])>>1 )&0x01) == 1)Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SP,DF_FLGSP1 ,D24V);else Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SP,DF_FLGSP1 ,Gnd);break;
|
||
case 2 :if(((((*tmpUn).ArrData.Arr[i][1])>>2 )&0x01) == 1)Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SP,DF_FLGSP2 ,D24V);else Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SP,DF_FLGSP2 ,Gnd);break;
|
||
case 3 :if(((((*tmpUn).ArrData.Arr[i][1])>>3 )&0x01) == 1)Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SP,DF_FLGSP3 ,D24V);else Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SP,DF_FLGSP3 ,Gnd);break;
|
||
case 4 :if(((((*tmpUn).ArrData.Arr[i][1])>>4 )&0x01) == 1)Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SP,DF_FLGSP4 ,D24V);else Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SP,DF_FLGSP4 ,Gnd);break;
|
||
case 5 :if(((((*tmpUn).ArrData.Arr[i][1])>>5 )&0x01) == 1)Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SP,DF_FLGSP5 ,D24V);else Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SP,DF_FLGSP5 ,Gnd);break;
|
||
case 6 :if(((((*tmpUn).ArrData.Arr[i][1])>>6 )&0x01) == 1)Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SP,DF_FLGSP6 ,D24V);else Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SP,DF_FLGSP6 ,Gnd);break;
|
||
case 7 :if(((((*tmpUn).ArrData.Arr[i][1])>>7 )&0x01) == 1)Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SP,DF_FLGSP7 ,D24V);else Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SP,DF_FLGSP7 ,Gnd);break;
|
||
case 8 :if(((((*tmpUn).ArrData.Arr[i][0])>>0 )&0x01) == 1)Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SG,DF_FLGSG0 ,D24V);else Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SG,DF_FLGSG0 ,Gnd);break;
|
||
case 9 :if(((((*tmpUn).ArrData.Arr[i][0])>>1 )&0x01) == 1)Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SG,DF_FLGSG1 ,D24V);else Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SG,DF_FLGSG1 ,Gnd);break;
|
||
case 10:if(((((*tmpUn).ArrData.Arr[i][0])>>2 )&0x01) == 1)Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SG,DF_FLGSG2 ,D24V);else Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SG,DF_FLGSG2 ,Gnd);break;
|
||
case 11:if(((((*tmpUn).ArrData.Arr[i][0])>>3 )&0x01) == 1)Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SG,DF_FLGSG3 ,D24V);else Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SG,DF_FLGSG3 ,Gnd);break;
|
||
case 12:if(((((*tmpUn).ArrData.Arr[i][0])>>4 )&0x01) == 1)Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SG,DF_FLGSG4 ,D24V);else Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SG,DF_FLGSG4 ,Gnd);break;
|
||
case 13:if(((((*tmpUn).ArrData.Arr[i][0])>>5 )&0x01) == 1)Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SG,DF_FLGSG5 ,D24V);else Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SG,DF_FLGSG5 ,Gnd);break;
|
||
case 14:if(((((*tmpUn).ArrData.Arr[i][0])>>6 )&0x01) == 1)Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SG,DF_FLGSG6 ,D24V);else Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SG,DF_FLGSG6 ,Gnd);break;
|
||
case 15:if(((((*tmpUn).ArrData.Arr[i][0])>>7 )&0x01) == 1)Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SG,DF_FLGSG7 ,D24V);else Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SG,DF_FLGSG7 ,Gnd);break;
|
||
case 16:if(((((*tmpUn).ArrData.Arr[i][3])>>0 )&0x01) == 1)Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SG,DF_FLGSG8 ,D24V);else Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SG,DF_FLGSG8 ,Gnd);break;
|
||
case 17:if(((((*tmpUn).ArrData.Arr[i][3])>>1 )&0x01) == 1)Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SG,DF_FLGSG9 ,D24V);else Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SG,DF_FLGSG9 ,Gnd);break;
|
||
case 18:if(((((*tmpUn).ArrData.Arr[i][3])>>2 )&0x01) == 1)Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SG,DF_FLGSG10,D24V);else Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SG,DF_FLGSG10,Gnd);break;
|
||
case 19:if(((((*tmpUn).ArrData.Arr[i][3])>>3 )&0x01) == 1)Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SG,DF_FLGSG11,D24V);else Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SG,DF_FLGSG11,Gnd);break;
|
||
case 20:if(((((*tmpUn).ArrData.Arr[i][3])>>4 )&0x01) == 1)Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SG,DF_FLGSG12,D24V);else Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SG,DF_FLGSG12,Gnd);break;
|
||
case 21:if(((((*tmpUn).ArrData.Arr[i][3])>>5 )&0x01) == 1)Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SG,DF_FLGSG13,D24V);else Mc33993CmdSendOneBit(i+DF_SwInNum,DF_CMDTRISTATE_SG,DF_FLGSG13,Gnd);break;
|
||
default:;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
//****************************************************************************
|
||
// @Function void ToggleOneBit(ubyte NumMc,ubyte CmdBit,ubyte Sp0ToSg13)
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Description È¡·´¸ø¶¨Ð¾Æ¬µÄ¸ø¶¨Î»£¬ÐèÒªÌṩÃüÁîλ
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Returnvalue None
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Parameters MC33993״̬´æ´¢½á¹¹ÌåÖ¸ÕëPntSta
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Date 2008-12-2
|
||
//
|
||
//****************************************************************************
|
||
// void ToggleOneBit(ubyte NumMc,ubyte CmdBit,ubyte Sp0ToSg13)
|
||
// {
|
||
// union WordByteBitAccess RcvSoMc33993;
|
||
// bit status;
|
||
|
||
// if(CmdBit == DF_CMDTRISTATE_SG)
|
||
// {
|
||
// RcvSoMc33993.StaSg = (*(PntSta+NumMc)).CmdTriState_Sg;
|
||
|
||
// switch(Sp0ToSg13)
|
||
// {
|
||
// case DF_FLGSG13: status = RcvSoMc33993.BitData.FlgSg13 ;break;
|
||
// case DF_FLGSG12: status = RcvSoMc33993.BitData.FlgSg12 ;break;
|
||
// case DF_FLGSG11: status = RcvSoMc33993.BitData.FlgSg11 ;break;
|
||
// case DF_FLGSG10: status = RcvSoMc33993.BitData.FlgSg10 ;break;
|
||
// case DF_FLGSG9 : status = RcvSoMc33993.BitData.FlgSg9 ;break;
|
||
// case DF_FLGSG8 : status = RcvSoMc33993.BitData.FlgSg8 ;break;
|
||
// case DF_FLGSG7 : status = RcvSoMc33993.BitData.FlgSg7_FlgSp7;break;
|
||
// case DF_FLGSG6 : status = RcvSoMc33993.BitData.FlgSg6_FlgSp6;break;
|
||
// case DF_FLGSG5 : status = RcvSoMc33993.BitData.FlgSg5_FlgSp5;break;
|
||
// case DF_FLGSG4 : status = RcvSoMc33993.BitData.FlgSg4_FlgSp4;break;
|
||
// case DF_FLGSG3 : status = RcvSoMc33993.BitData.FlgSg3_FlgSp3;break;
|
||
// case DF_FLGSG2 : status = RcvSoMc33993.BitData.FlgSg2_FlgSp2;break;
|
||
// case DF_FLGSG1 : status = RcvSoMc33993.BitData.FlgSg1_FlgSp1;break;
|
||
// case DF_FLGSG0 : status = RcvSoMc33993.BitData.FlgSg0_FlgSp0;break;
|
||
// default:;
|
||
// }
|
||
// if(status)Mc33993CmdSendOneBit(Mc33993_1,DF_CMDTRISTATE_SG,Sp0ToSg13,D24V);
|
||
// else Mc33993CmdSendOneBit(Mc33993_1,DF_CMDTRISTATE_SG,Sp0ToSg13,Gnd);
|
||
// }
|
||
// else if(CmdBit == DF_CMDTRISTATE_SP)
|
||
// {
|
||
// RcvSoMc33993.ByteData.StaSgL = (*(PntSta+NumMc)).CmdTriState_Sp;
|
||
|
||
// switch(Sp0ToSg13)
|
||
// {
|
||
// case DF_FLGSG7 : status = RcvSoMc33993.BitData.FlgSg7_FlgSp7;break;
|
||
// case DF_FLGSG6 : status = RcvSoMc33993.BitData.FlgSg6_FlgSp6;break;
|
||
// case DF_FLGSG5 : status = RcvSoMc33993.BitData.FlgSg5_FlgSp5;break;
|
||
// case DF_FLGSG4 : status = RcvSoMc33993.BitData.FlgSg4_FlgSp4;break;
|
||
// case DF_FLGSG3 : status = RcvSoMc33993.BitData.FlgSg3_FlgSp3;break;
|
||
// case DF_FLGSG2 : status = RcvSoMc33993.BitData.FlgSg2_FlgSp2;break;
|
||
// case DF_FLGSG1 : status = RcvSoMc33993.BitData.FlgSg1_FlgSp1;break;
|
||
// case DF_FLGSG0 : status = RcvSoMc33993.BitData.FlgSg0_FlgSp0;break;
|
||
// default:;
|
||
// }
|
||
// if(status)Mc33993CmdSendOneBit(Mc33993_1,DF_CMDTRISTATE_SP,Sp0ToSg13,D24V);
|
||
// else Mc33993CmdSendOneBit(Mc33993_1,DF_CMDTRISTATE_SP,Sp0ToSg13,Gnd);
|
||
// }
|
||
// }
|
||
|
||
//****************************************************************************
|
||
// @Function void InitMc33993Sec(struct StaMc33993CmdSet *PntSta)
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Description ËùÓÐMC33993¶þ´Î³õʼ»¯£¬Ò²¾ÍÊÇÿ´Î²Ù×÷33993ʱ¶¼ÓÃ֮ǰµÄ״̬³õʼ»¯
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Returnvalue None
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Parameters MC33993״̬´æ´¢½á¹¹ÌåÖ¸ÕëPntSta
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Date 2008-12-2
|
||
//
|
||
//****************************************************************************
|
||
void InitMc33993Sec(void)
|
||
{
|
||
ubyte i;
|
||
for(i=0;i<NumChipSw;i++)
|
||
{
|
||
Mc33993CmdSend(i,DF_CMDSETTING, 0, (*(PntSta+i)).CmdSetting); //1£¬¿ª¹Øµ½µçÔ´
|
||
Mc33993CmdSend(i,DF_CMDINT_SP, 0, (*(PntSta+i)).CmdInt_Sp ); //1£¬¹Ø±ÕÖжÏ
|
||
Mc33993CmdSend(i,DF_CMDINT_SG, (ubyte)((((*(PntSta+i)).CmdInt_Sg) >>8)&0x00ff),(ubyte)(((*(PntSta+i)).CmdInt_Sg)&0x00ff)); //1£¬¹Ø±ÕÖжÏ
|
||
Mc33993CmdSend(i,DF_CMDMETALLIC_SP, 0, (*(PntSta+i)).CmdMetallic_Sp); //0£¬2mA
|
||
Mc33993CmdSend(i,DF_CMDMETALLIC_SG, (ubyte)((((*(PntSta+i)).CmdMetallic_Sg)>>8)&0x00ff),(ubyte)(((*(PntSta+i)).CmdMetallic_Sg)&0x00ff)); //0£¬2mA
|
||
Mc33993CmdSend(i,DF_CMDANALOG, 0, (*(PntSta+i)).CmdAnalog); //0£¬²»Ñ¡ÔñÈκÎͨµÀ
|
||
Mc33993CmdSend(i,DF_CMDWETCURR_SP, 0, (*(PntSta+i)).CmdWetCurr_Sp); //0£¬ÊªµçÁ÷¶¨Ê±Æ÷¹Ø±Õ
|
||
Mc33993CmdSend(i,DF_CMDWETCURR_SG, (ubyte)((((*(PntSta+i)).CmdWetCurr_Sg) >>8)&0x00ff),(ubyte)(((*(PntSta+i)).CmdWetCurr_Sg)&0x00ff)); //0£¬ÊªµçÁ÷¶¨Ê±Æ÷¹Ø±Õ
|
||
Mc33993CmdSend(i,DF_CMDTRISTATE_SP, 0, (*(PntSta+i)).CmdTriState_Sp); //0£¬½ûÖ¹Èý̬
|
||
Mc33993CmdSend(i,DF_CMDTRISTATE_SG, (ubyte)((((*(PntSta+i)).CmdTriState_Sg)>>8)&0x00ff),(ubyte)(((*(PntSta+i)).CmdTriState_Sg)&0x00ff)); //0£¬Ê¹ÄÜÈý̬
|
||
}
|
||
}
|
||
|
||
//****************************************************************************
|
||
// @Function void InitMc33993(struct StaMc33993CmdSet *PntSta)
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Description ËùÓÐMC33993ÔÚµ¥Æ¬»úÉϵçʱ³õʼ»¯
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Returnvalue None
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Parameters None
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Date 2008-12-2
|
||
//
|
||
//****************************************************************************
|
||
void InitSW(void)
|
||
{
|
||
ubyte i;
|
||
for(i=0;i<NumChipSw;i++)
|
||
{
|
||
Mc33993CmdSend(i,DF_CMDSETTING,0,0); //0£¬¿ª¹Øµ½µØ
|
||
Mc33993CmdSend(i,DF_CMDINT_SP,0,0xff); //1£¬¹Ø±ÕÖжÏ
|
||
Mc33993CmdSend(i,DF_CMDINT_SG,0x3f,0xff); //1£¬¹Ø±ÕÖжÏ
|
||
Mc33993CmdSend(i,DF_CMDMETALLIC_SP,0,0); //0£¬2mA
|
||
Mc33993CmdSend(i,DF_CMDMETALLIC_SG,0,0); //0£¬2mA
|
||
Mc33993CmdSend(i,DF_CMDANALOG,0,0); //0£¬²»Ñ¡ÔñÈκÎͨµÀ
|
||
Mc33993CmdSend(i,DF_CMDWETCURR_SP,0,0); //0£¬ÊªµçÁ÷¶¨Ê±Æ÷¹Ø±Õ
|
||
Mc33993CmdSend(i,DF_CMDWETCURR_SG,0,0); //0£¬ÊªµçÁ÷¶¨Ê±Æ÷¹Ø±Õ
|
||
Mc33993CmdSend(i,DF_CMDTRISTATE_SP,0xff,0xff); //0£¬½ûÖ¹Èý̬
|
||
Mc33993CmdSend(i,DF_CMDTRISTATE_SG,0xff,0xff); //0£¬½ûÖ¹Èý̬
|
||
|
||
}
|
||
}
|
||
|
||
//****************************************************************************
|
||
// @Function ubyte Mc33993AnalogChSel(struct StaMc33993CmdSet *PntSta,ubyte NumMc,ubyte Mode,ubyte Channal)
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Description Ä£ÄâͨµÀÑ¡Ôñ¡¢Ä£Ê½Ñ¡Ôñ
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Returnvalue ͨµÀÇл»³É¹¦·µ»Ø1
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Parameters None
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Date 2008-12-2
|
||
//
|
||
//****************************************************************************
|
||
// ubyte Mc33993AnalogChSel(ubyte NumMc,ubyte Mode,ubyte Channal)
|
||
// {
|
||
// union WordByteBitAccess RcvSoMc33993;
|
||
// //----------------------------------------------------------------------------
|
||
// if(NumMc > (NumChipSw-1))NumMc = (NumChipSw-1); //¶àÓàNumChipSwƬ
|
||
// RcvSoMc33993.ByteData.StaSgL = 0;
|
||
// RcvSoMc33993.ByteData.StaSgL = (RcvSoMc33993.ByteData.StaSgL | Channal);
|
||
// switch(Mode)
|
||
// {
|
||
// case DF_AN_HIMP:
|
||
// RcvSoMc33993.BitData.FlgSg6_FlgSp6 = 0;//¸ÃÁ½Î»¾ö¶¨Ñ¡ÔñÄÄÖÖģʽ
|
||
// RcvSoMc33993.BitData.FlgSg5_FlgSp5 = 0;
|
||
// break;
|
||
// case DF_AN_2MA:
|
||
// RcvSoMc33993.BitData.FlgSg6_FlgSp6 = 0;
|
||
// RcvSoMc33993.BitData.FlgSg5_FlgSp5 = 1;
|
||
// break;
|
||
// case DF_AN_16MA:
|
||
// RcvSoMc33993.BitData.FlgSg6_FlgSp6 = 1;
|
||
// RcvSoMc33993.BitData.FlgSg5_FlgSp5 = 0;
|
||
// break;
|
||
// default:
|
||
// RcvSoMc33993.BitData.FlgSg6_FlgSp6 = 0;
|
||
// RcvSoMc33993.BitData.FlgSg5_FlgSp5 = 0;
|
||
// }
|
||
// Mc33993CmdSend(NumMc,DF_CMDANALOG,RcvSoMc33993.ByteData.StaSgH,RcvSoMc33993.ByteData.StaSgL);
|
||
|
||
// (*(PntSta+NumMc)).CmdAnalog = RcvSoMc33993.ByteData.StaSgL;//±£´æÃüÁî״̬
|
||
|
||
// return 1;
|
||
// }
|
||
|
||
//****************************************************************************
|
||
// @Function bit Mc33993StaRcvOneBit(ubyte NumMc,ubyte Sp0ToSg13)
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Description ¶ÁÈ¡ÈÎÒâһλµÄ¿ª¹Ø×´Ì¬
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Returnvalue ·µ»ØÎ»×´Ì¬
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Parameters None
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Date 2008-12-2
|
||
//
|
||
//****************************************************************************
|
||
// bit Mc33993StaRcvOneBit(ubyte NumMc,ubyte Sp0ToSg13)
|
||
// {
|
||
// union ByteBitAccess *Pnt;
|
||
// bit BitRcvOneBit;
|
||
// //-----------------------------------------------------------------------------
|
||
// if(NumMc > (NumChipSw-1))NumMc = (NumChipSw-1);
|
||
// Pnt = Mc33993CmdSend(NumMc,DF_CMDSWSTATUS,0xff,0xff);
|
||
|
||
// if(Sp0ToSg13 == DF_FLGTHEM)BitRcvOneBit = (*Pnt).BitData.FlgThem;
|
||
// else if(Sp0ToSg13 == DF_FLGINT )BitRcvOneBit = (*Pnt).BitData.FlgInt;
|
||
// else if(Sp0ToSg13 == DF_FLGSP7 )BitRcvOneBit = (*Pnt).BitData.FlgSp7;
|
||
// else if(Sp0ToSg13 == DF_FLGSP6 )BitRcvOneBit = (*Pnt).BitData.FlgSp6;
|
||
// else if(Sp0ToSg13 == DF_FLGSP5 )BitRcvOneBit = (*Pnt).BitData.FlgSp5;
|
||
// else if(Sp0ToSg13 == DF_FLGSP4 )BitRcvOneBit = (*Pnt).BitData.FlgSp4;
|
||
// else if(Sp0ToSg13 == DF_FLGSP3 )BitRcvOneBit = (*Pnt).BitData.FlgSp3;
|
||
// else if(Sp0ToSg13 == DF_FLGSP2 )BitRcvOneBit = (*Pnt).BitData.FlgSp2;
|
||
// else if(Sp0ToSg13 == DF_FLGSP1 )BitRcvOneBit = (*Pnt).BitData.FlgSp1;
|
||
// else if(Sp0ToSg13 == DF_FLGSP0 )BitRcvOneBit = (*Pnt).BitData.FlgSp0;
|
||
// else if(Sp0ToSg13 == DF_FLGSG13)BitRcvOneBit = (*Pnt).BitData.FlgSg13;
|
||
// else if(Sp0ToSg13 == DF_FLGSG12)BitRcvOneBit = (*Pnt).BitData.FlgSg12;
|
||
// else if(Sp0ToSg13 == DF_FLGSG11)BitRcvOneBit = (*Pnt).BitData.FlgSg11;
|
||
// else if(Sp0ToSg13 == DF_FLGSG10)BitRcvOneBit = (*Pnt).BitData.FlgSg10;
|
||
// else if(Sp0ToSg13 == DF_FLGSG9 )BitRcvOneBit = (*Pnt).BitData.FlgSg9;
|
||
// else if(Sp0ToSg13 == DF_FLGSG8 )BitRcvOneBit = (*Pnt).BitData.FlgSg8;
|
||
// else if(Sp0ToSg13 == DF_FLGSG7 )BitRcvOneBit = (*Pnt).BitData.FlgSg7;
|
||
// else if(Sp0ToSg13 == DF_FLGSG6 )BitRcvOneBit = (*Pnt).BitData.FlgSg6;
|
||
// else if(Sp0ToSg13 == DF_FLGSG5 )BitRcvOneBit = (*Pnt).BitData.FlgSg5;
|
||
// else if(Sp0ToSg13 == DF_FLGSG4 )BitRcvOneBit = (*Pnt).BitData.FlgSg4;
|
||
// else if(Sp0ToSg13 == DF_FLGSG3 )BitRcvOneBit = (*Pnt).BitData.FlgSg3;
|
||
// else if(Sp0ToSg13 == DF_FLGSG2 )BitRcvOneBit = (*Pnt).BitData.FlgSg2;
|
||
// else if(Sp0ToSg13 == DF_FLGSG1 )BitRcvOneBit = (*Pnt).BitData.FlgSg1;
|
||
// else if(Sp0ToSg13 == DF_FLGSG0 )BitRcvOneBit = (*Pnt).BitData.FlgSg0;
|
||
// else ;
|
||
// return BitRcvOneBit;
|
||
// }
|
||
|
||
//****************************************************************************
|
||
// @Function ubyte Mc33993CmdSendOneBit(struct StaMc33993CmdSet *PntSta,ubyte NumMc,ubyte CmdBit,ubyte Sp0ToSg13,bit Status)
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Description дMC33993ÈÎÒâ룬µ÷ÓÃMc33993CmdSend(NumMc,CmdBit,RcvSoMc33993.ByteData.StaSgH,RcvSoMc33993.ByteData.StaSgL);
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Returnvalue ³É¹¦·µ»Ø1
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Parameters None
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Date 2008-12-2
|
||
//
|
||
//****************************************************************************
|
||
ubyte Mc33993CmdSendOneBit(ubyte NumMc,ubyte CmdBit,ubyte Sp0ToSg13,bit Status)
|
||
{
|
||
union WordByteBitAccess RcvSoMc33993;
|
||
//----------------------------------------------------------------------------
|
||
if(NumMc > (NumChipSw-1))NumMc = (NumChipSw-1);
|
||
switch(CmdBit)
|
||
{
|
||
//DF_CMDSETTING
|
||
case DF_CMDSETTING:
|
||
RcvSoMc33993.ByteData.StaSgL = (*(PntSta+NumMc)).CmdSetting; //ÓÃ֮ǰµÄ״̬Ìî³äRcvSoMc33993µÍ×Ö½Ú,Ò²¾ÍÊDz»¸Ä±äÆäËüλµÄ״̬
|
||
if(Sp0ToSg13 == DF_FLGSP7)RcvSoMc33993.BitData.FlgSg7_FlgSp7 = Status;//¸üÐÂÐèÒª¸Ä±äµÄλ
|
||
else if(Sp0ToSg13 == DF_FLGSP6)RcvSoMc33993.BitData.FlgSg6_FlgSp6 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSP5)RcvSoMc33993.BitData.FlgSg5_FlgSp5 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSP4)RcvSoMc33993.BitData.FlgSg4_FlgSp4 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSP3)RcvSoMc33993.BitData.FlgSg3_FlgSp3 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSP2)RcvSoMc33993.BitData.FlgSg2_FlgSp2 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSP1)RcvSoMc33993.BitData.FlgSg1_FlgSp1 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSP0)RcvSoMc33993.BitData.FlgSg0_FlgSp0 = Status;
|
||
else ;
|
||
Mc33993CmdSend(NumMc,CmdBit,RcvSoMc33993.ByteData.StaSgH,RcvSoMc33993.ByteData.StaSgL);
|
||
//(*(PntSta+NumMc)).CmdSetting = RcvSoMc33993.ByteData.StaSgL;//¸üкóµÄ״̬±£´æ
|
||
break;
|
||
//DF_CMDINT_SP
|
||
case DF_CMDINT_SP:
|
||
RcvSoMc33993.ByteData.StaSgL = (*(PntSta+NumMc)).CmdInt_Sp;
|
||
if(Sp0ToSg13 == DF_FLGSP7)RcvSoMc33993.BitData.FlgSg7_FlgSp7 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSP6)RcvSoMc33993.BitData.FlgSg6_FlgSp6 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSP5)RcvSoMc33993.BitData.FlgSg5_FlgSp5 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSP4)RcvSoMc33993.BitData.FlgSg4_FlgSp4 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSP3)RcvSoMc33993.BitData.FlgSg3_FlgSp3 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSP2)RcvSoMc33993.BitData.FlgSg2_FlgSp2 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSP1)RcvSoMc33993.BitData.FlgSg1_FlgSp1 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSP0)RcvSoMc33993.BitData.FlgSg0_FlgSp0 = Status;
|
||
else ;
|
||
Mc33993CmdSend(NumMc,CmdBit,RcvSoMc33993.ByteData.StaSgH,RcvSoMc33993.ByteData.StaSgL);
|
||
//(*(PntSta+NumMc)).CmdInt_Sp = RcvSoMc33993.ByteData.StaSgL;
|
||
break;
|
||
//DF_CMDMETALLIC_SP
|
||
case DF_CMDMETALLIC_SP:
|
||
RcvSoMc33993.ByteData.StaSgL = (*(PntSta+NumMc)).CmdMetallic_Sp;
|
||
if(Sp0ToSg13 == DF_FLGSP7)RcvSoMc33993.BitData.FlgSg7_FlgSp7 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSP6)RcvSoMc33993.BitData.FlgSg6_FlgSp6 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSP5)RcvSoMc33993.BitData.FlgSg5_FlgSp5 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSP4)RcvSoMc33993.BitData.FlgSg4_FlgSp4 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSP3)RcvSoMc33993.BitData.FlgSg3_FlgSp3 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSP2)RcvSoMc33993.BitData.FlgSg2_FlgSp2 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSP1)RcvSoMc33993.BitData.FlgSg1_FlgSp1 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSP0)RcvSoMc33993.BitData.FlgSg0_FlgSp0 = Status;
|
||
else ;
|
||
Mc33993CmdSend(NumMc,CmdBit,RcvSoMc33993.ByteData.StaSgH,RcvSoMc33993.ByteData.StaSgL);
|
||
//(*(PntSta+NumMc)).CmdMetallic_Sp = RcvSoMc33993.ByteData.StaSgL;
|
||
break;
|
||
//DF_CMDWETCURR_SP
|
||
case DF_CMDWETCURR_SP:
|
||
RcvSoMc33993.ByteData.StaSgL = (*(PntSta+NumMc)).CmdWetCurr_Sp;
|
||
if(Sp0ToSg13 == DF_FLGSP7)RcvSoMc33993.BitData.FlgSg7_FlgSp7 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSP6)RcvSoMc33993.BitData.FlgSg6_FlgSp6 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSP5)RcvSoMc33993.BitData.FlgSg5_FlgSp5 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSP4)RcvSoMc33993.BitData.FlgSg4_FlgSp4 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSP3)RcvSoMc33993.BitData.FlgSg3_FlgSp3 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSP2)RcvSoMc33993.BitData.FlgSg2_FlgSp2 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSP1)RcvSoMc33993.BitData.FlgSg1_FlgSp1 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSP0)RcvSoMc33993.BitData.FlgSg0_FlgSp0 = Status;
|
||
else ;
|
||
Mc33993CmdSend(NumMc,CmdBit,RcvSoMc33993.ByteData.StaSgH,RcvSoMc33993.ByteData.StaSgL);
|
||
//(*(PntSta+NumMc)).CmdWetCurr_Sp = RcvSoMc33993.ByteData.StaSgL;
|
||
break;
|
||
//DF_CMDTRISTATE_SP
|
||
case DF_CMDTRISTATE_SP:
|
||
RcvSoMc33993.ByteData.StaSgL = (*(PntSta+NumMc)).CmdTriState_Sp;
|
||
if(Sp0ToSg13 == DF_FLGSP7)RcvSoMc33993.BitData.FlgSg7_FlgSp7 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSP6)RcvSoMc33993.BitData.FlgSg6_FlgSp6 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSP5)RcvSoMc33993.BitData.FlgSg5_FlgSp5 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSP4)RcvSoMc33993.BitData.FlgSg4_FlgSp4 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSP3)RcvSoMc33993.BitData.FlgSg3_FlgSp3 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSP2)RcvSoMc33993.BitData.FlgSg2_FlgSp2 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSP1)RcvSoMc33993.BitData.FlgSg1_FlgSp1 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSP0)RcvSoMc33993.BitData.FlgSg0_FlgSp0 = Status;
|
||
else ;
|
||
Mc33993CmdSend(NumMc,CmdBit,RcvSoMc33993.ByteData.StaSgH,RcvSoMc33993.ByteData.StaSgL);
|
||
//(*(PntSta+NumMc)).CmdTriState_Sp = RcvSoMc33993.ByteData.StaSgL;
|
||
break;
|
||
//DF_CMDINT_SG
|
||
case DF_CMDINT_SG:
|
||
RcvSoMc33993.StaSg = (*(PntSta+NumMc)).CmdInt_Sg;
|
||
if(Sp0ToSg13 == DF_FLGSG13) RcvSoMc33993.BitData.FlgSg13 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG12) RcvSoMc33993.BitData.FlgSg12 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG11) RcvSoMc33993.BitData.FlgSg11 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG10) RcvSoMc33993.BitData.FlgSg10 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG9 ) RcvSoMc33993.BitData.FlgSg9 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG8 ) RcvSoMc33993.BitData.FlgSg8 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG7 ) RcvSoMc33993.BitData.FlgSg7_FlgSp7 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG6 ) RcvSoMc33993.BitData.FlgSg6_FlgSp6 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG5 ) RcvSoMc33993.BitData.FlgSg5_FlgSp5 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG4 ) RcvSoMc33993.BitData.FlgSg4_FlgSp4 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG3 ) RcvSoMc33993.BitData.FlgSg3_FlgSp3 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG2 ) RcvSoMc33993.BitData.FlgSg2_FlgSp2 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG1 ) RcvSoMc33993.BitData.FlgSg1_FlgSp1 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG0 ) RcvSoMc33993.BitData.FlgSg0_FlgSp0 = Status;
|
||
else ;
|
||
Mc33993CmdSend(NumMc,CmdBit,RcvSoMc33993.ByteData.StaSgH,RcvSoMc33993.ByteData.StaSgL);
|
||
//(*(PntSta+NumMc)).CmdInt_Sg = RcvSoMc33993.StaSg;
|
||
break;
|
||
//DF_CMDMETALLIC_SG
|
||
case DF_CMDMETALLIC_SG:
|
||
RcvSoMc33993.StaSg = (*(PntSta+NumMc)).CmdMetallic_Sg;
|
||
if(Sp0ToSg13 == DF_FLGSG13) RcvSoMc33993.BitData.FlgSg13 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG12) RcvSoMc33993.BitData.FlgSg12 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG11) RcvSoMc33993.BitData.FlgSg11 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG10) RcvSoMc33993.BitData.FlgSg10 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG9 ) RcvSoMc33993.BitData.FlgSg9 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG8 ) RcvSoMc33993.BitData.FlgSg8 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG7 ) RcvSoMc33993.BitData.FlgSg7_FlgSp7 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG6 ) RcvSoMc33993.BitData.FlgSg6_FlgSp6 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG5 ) RcvSoMc33993.BitData.FlgSg5_FlgSp5 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG4 ) RcvSoMc33993.BitData.FlgSg4_FlgSp4 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG3 ) RcvSoMc33993.BitData.FlgSg3_FlgSp3 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG2 ) RcvSoMc33993.BitData.FlgSg2_FlgSp2 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG1 ) RcvSoMc33993.BitData.FlgSg1_FlgSp1 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG0 ) RcvSoMc33993.BitData.FlgSg0_FlgSp0 = Status;
|
||
else ;
|
||
Mc33993CmdSend(NumMc,CmdBit,RcvSoMc33993.ByteData.StaSgH,RcvSoMc33993.ByteData.StaSgL);
|
||
//(*(PntSta+NumMc)).CmdMetallic_Sg = RcvSoMc33993.StaSg;
|
||
break;
|
||
//DF_CMDWETCURR_SG
|
||
case DF_CMDWETCURR_SG:
|
||
RcvSoMc33993.StaSg = (*(PntSta+NumMc)).CmdWetCurr_Sg;
|
||
if(Sp0ToSg13 == DF_FLGSG13) RcvSoMc33993.BitData.FlgSg13 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG12) RcvSoMc33993.BitData.FlgSg12 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG11) RcvSoMc33993.BitData.FlgSg11 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG10) RcvSoMc33993.BitData.FlgSg10 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG9 ) RcvSoMc33993.BitData.FlgSg9 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG8 ) RcvSoMc33993.BitData.FlgSg8 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG7 ) RcvSoMc33993.BitData.FlgSg7_FlgSp7 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG6 ) RcvSoMc33993.BitData.FlgSg6_FlgSp6 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG5 ) RcvSoMc33993.BitData.FlgSg5_FlgSp5 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG4 ) RcvSoMc33993.BitData.FlgSg4_FlgSp4 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG3 ) RcvSoMc33993.BitData.FlgSg3_FlgSp3 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG2 ) RcvSoMc33993.BitData.FlgSg2_FlgSp2 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG1 ) RcvSoMc33993.BitData.FlgSg1_FlgSp1 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG0 ) RcvSoMc33993.BitData.FlgSg0_FlgSp0 = Status;
|
||
else ;
|
||
Mc33993CmdSend(NumMc,CmdBit,RcvSoMc33993.ByteData.StaSgH,RcvSoMc33993.ByteData.StaSgL);
|
||
//(*(PntSta+NumMc)).CmdWetCurr_Sg = RcvSoMc33993.StaSg;
|
||
break;
|
||
//DF_CMDTRISTATE_SG
|
||
case DF_CMDTRISTATE_SG:
|
||
RcvSoMc33993.StaSg = (*(PntSta+NumMc)).CmdTriState_Sg;
|
||
if(Sp0ToSg13 == DF_FLGSG13) RcvSoMc33993.BitData.FlgSg13 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG12) RcvSoMc33993.BitData.FlgSg12 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG11) RcvSoMc33993.BitData.FlgSg11 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG10) RcvSoMc33993.BitData.FlgSg10 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG9 ) RcvSoMc33993.BitData.FlgSg9 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG8 ) RcvSoMc33993.BitData.FlgSg8 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG7 ) RcvSoMc33993.BitData.FlgSg7_FlgSp7 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG6 ) RcvSoMc33993.BitData.FlgSg6_FlgSp6 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG5 ) RcvSoMc33993.BitData.FlgSg5_FlgSp5 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG4 ) RcvSoMc33993.BitData.FlgSg4_FlgSp4 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG3 ) RcvSoMc33993.BitData.FlgSg3_FlgSp3 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG2 ) RcvSoMc33993.BitData.FlgSg2_FlgSp2 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG1 ) RcvSoMc33993.BitData.FlgSg1_FlgSp1 = Status;
|
||
else if(Sp0ToSg13 == DF_FLGSG0 ) RcvSoMc33993.BitData.FlgSg0_FlgSp0 = Status;
|
||
else ;
|
||
Mc33993CmdSend(NumMc,CmdBit,RcvSoMc33993.ByteData.StaSgH,RcvSoMc33993.ByteData.StaSgL);
|
||
//(*(PntSta+NumMc)).CmdTriState_Sg = RcvSoMc33993.StaSg;
|
||
break;
|
||
default:;
|
||
}
|
||
return 1;
|
||
}
|
||
|
||
//Ƭѡ²úÉú
|
||
//¶àÓà20ƬÐèÒªÔö¼Ó
|
||
void ChangeCsMc33993(ubyte NumMc,bit HorL)
|
||
{
|
||
switch(NumMc)
|
||
{
|
||
case Mc33993_0 : CS_SwChip_0 = HorL;break;
|
||
case Mc33993_1 : CS_SwChip_1 = HorL;break;
|
||
default:;
|
||
}
|
||
}
|
||
//****************************************************************************
|
||
// @Function ubyte Mc33993DataSendRcv(ubyte Data)
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Description ·¢ËÍÊý¾Ý,·µ»Ø½ÓÊÕÊý¾Ý
|
||
// ´Ëº¯ÊýÓëCPUƽ̨Ïà¹Ø,²»Í¬CPUÐèÒªÐ޸ġ£
|
||
// ´Ëº¯ÊýÊÊÓÃÓÚXC2765£¬SSC²ÉÓòéѯ·½Ê½
|
||
//----------------------------------------------------------------------------
|
||
// @Returnvalue ·µ»Ø½ÓÊÕµÄÊý¾Ý
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Parameters None
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Date 2011-3-4 10:28:27
|
||
//
|
||
//****************************************************************************
|
||
ubyte Mc33993DataSendRcv(ubyte Data)
|
||
{
|
||
uword i;
|
||
SSC_vSendData(Data);
|
||
for(i=0;(i<6000)&&(!(IRCON1&0x02));i++);
|
||
IRCON1 &= 0xFD;
|
||
for(i=0;(i<6000)&&(!(IRCON1&0x04));i++);
|
||
IRCON1 &= 0xFB;
|
||
return((ubyte)(SSC_vGetData()));
|
||
}
|
||
|
||
//****************************************************************************
|
||
// @Function union ByteBitAccess *Mc33993CmdSend(ubyte NumMc,ubyte CmdBit,ubyte SetBitH,ubyte SetBitL)
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Description ·¢ËÍ33993µÄ²Ù×÷ÃüÁî,·µ»Ø¿ª¹Ø×´Ì¬
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Returnvalue ·µ»Ø½ÓÊÕµÄ3¸ö×ֽڵĿª¹Ø×´Ì¬
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Parameters None
|
||
//
|
||
//----------------------------------------------------------------------------
|
||
// @Date 2011-3-4 10:36:27
|
||
//
|
||
//****************************************************************************
|
||
union ByteBitAccess *Mc33993CmdSend(ubyte NumMc,ubyte CmdBit,ubyte SetBitH,ubyte SetBitL)
|
||
{
|
||
union ByteBitAccess RcvSoMc33993,*Pnt;
|
||
union WordByteBitAccess RcvSoMc33993W;
|
||
// uword i;
|
||
//----------------------------------------------------------------------------
|
||
RcvSoMc33993W.ByteData.StaSgH = SetBitH;
|
||
RcvSoMc33993W.ByteData.StaSgL = SetBitL;
|
||
switch(CmdBit)//±£´æÃüÁî״̬
|
||
{
|
||
case DF_CMDSETTING :(*(PntSta+NumMc)).CmdSetting = RcvSoMc33993W.StaSg;break;
|
||
case DF_CMDINT_SP :(*(PntSta+NumMc)).CmdInt_Sp = RcvSoMc33993W.StaSg;break;
|
||
case DF_CMDINT_SG :(*(PntSta+NumMc)).CmdInt_Sg = RcvSoMc33993W.StaSg;break;
|
||
case DF_CMDMETALLIC_SP:(*(PntSta+NumMc)).CmdMetallic_Sp = RcvSoMc33993W.StaSg;break;
|
||
case DF_CMDMETALLIC_SG:(*(PntSta+NumMc)).CmdMetallic_Sg = RcvSoMc33993W.StaSg;break;
|
||
case DF_CMDANALOG :(*(PntSta+NumMc)).CmdAnalog = RcvSoMc33993W.StaSg;break;
|
||
case DF_CMDWETCURR_SP :(*(PntSta+NumMc)).CmdWetCurr_Sp = RcvSoMc33993W.StaSg;break;
|
||
case DF_CMDWETCURR_SG :(*(PntSta+NumMc)).CmdWetCurr_Sg = RcvSoMc33993W.StaSg;break;
|
||
case DF_CMDTRISTATE_SP:(*(PntSta+NumMc)).CmdTriState_Sp = RcvSoMc33993W.StaSg;break;
|
||
case DF_CMDTRISTATE_SG:(*(PntSta+NumMc)).CmdTriState_Sg = RcvSoMc33993W.StaSg;break;
|
||
default:;
|
||
}
|
||
|
||
|
||
if(NumMc > (NumChipSw-1))NumMc = (NumChipSw-1);
|
||
ChangeCsMc33993(NumMc,0);
|
||
//----------------------------
|
||
_nop_();
|
||
_nop_();
|
||
_nop_();
|
||
_nop_();
|
||
|
||
//-------------------------------
|
||
|
||
RcvSoMc33993.ByteData.SoMc33993Byte2 = Mc33993DataSendRcv(CmdBit);
|
||
|
||
RcvSoMc33993.ByteData.SoMc33993Byte1 = Mc33993DataSendRcv(SetBitH);
|
||
|
||
RcvSoMc33993.ByteData.SoMc33993Byte0 = Mc33993DataSendRcv(SetBitL);
|
||
|
||
ChangeCsMc33993(NumMc,1);
|
||
//----------------------------
|
||
_nop_();
|
||
_nop_();
|
||
_nop_();
|
||
_nop_();
|
||
//-------------------------------
|
||
Pnt = &RcvSoMc33993;
|
||
return (Pnt);
|
||
}
|