762 lines
26 KiB
Plaintext
762 lines
26 KiB
Plaintext
|
//----------------------start RN8209 <20><>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>---------------------------------------------------//
|
|||
|
#define ADSYSCON 0x00
|
|||
|
#define ADEMUCON 0x01
|
|||
|
#define ADHFConst 0x02
|
|||
|
#define ADPStart 0x03
|
|||
|
#define ADDStart 0x04
|
|||
|
#define ADGPQA 0x05
|
|||
|
#define ADGPQB 0x06
|
|||
|
#define ADPhsA 0x07
|
|||
|
#define ADPhsB 0x08
|
|||
|
#define ADQPHSCAL 0x09
|
|||
|
#define ADAPOSA 0x0a
|
|||
|
#define ADAPOSB 0x0b
|
|||
|
#define ADRPOSA 0x0c
|
|||
|
#define ADRPOSB 0x0d
|
|||
|
#define ADIARMSOS 0x0e
|
|||
|
#define ADIBRMSOS 0x0f
|
|||
|
#define ADIBGain 0x10
|
|||
|
#define ADD2FPL 0x11
|
|||
|
#define ADD2FPH 0x12
|
|||
|
#define ADDCIAH 0x13
|
|||
|
#define ADDCIBH 0x14
|
|||
|
#define ADDCUH 0x15
|
|||
|
#define ADDCL 0x16
|
|||
|
#define ADEMUCON2 0x17
|
|||
|
#define ADPFCnt 0x20
|
|||
|
#define ADDFcnt 0x21
|
|||
|
#define ADIARMS 0x22
|
|||
|
#define ADIBRMS 0x23
|
|||
|
#define ADURMS 0x24
|
|||
|
#define ADUFreq 0x25
|
|||
|
#define ADPowerPA 0x26
|
|||
|
#define ADPowerPB 0x27
|
|||
|
#define ADEnergyP 0x29
|
|||
|
#define ADEnergyP2 0x2a
|
|||
|
#define ADEnergyD 0x2b
|
|||
|
#define ADEnergyD2 0x2c
|
|||
|
#define ADEMUStatus 0x2d
|
|||
|
#define ADSPL_IA 0x30
|
|||
|
#define ADSPL_IB 0x31
|
|||
|
#define ADSPL_U 0x32
|
|||
|
#define ADIE 0x40
|
|||
|
#define ADIF 0x41
|
|||
|
#define ADRIF 0x42
|
|||
|
#define ADSysStatus 0x43
|
|||
|
#define ADRData 0x44
|
|||
|
#define ADWData 0x45
|
|||
|
#define ADDeviceID 0x7f
|
|||
|
#define WriteEn 0xea
|
|||
|
//----------------------end RN8209 <20><>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>-----------------------------------------------//
|
|||
|
//---start У<><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>-------<2D><><EFBFBD>ɸ<EFBFBD><C9B8>ݼ<EFBFBD><DDBC><EFBFBD>оƬ<D0BE><C6AC><EFBFBD>ģ<EFBFBD>
|
|||
|
typedef struct
|
|||
|
{
|
|||
|
u16 SYSCON;
|
|||
|
u16 EMUCON;
|
|||
|
u16 HFConst;
|
|||
|
u16 PStart;
|
|||
|
u16 QStart; //10
|
|||
|
u16 GPQA;
|
|||
|
u16 GPQB;
|
|||
|
u16 IAGain;
|
|||
|
u16 UGain;
|
|||
|
u16 IBGain;
|
|||
|
u16 PhsA;
|
|||
|
u16 PhsB;
|
|||
|
u16 QPhsCal; //22
|
|||
|
u16 APOSA;
|
|||
|
u16 APOSB;
|
|||
|
u16 RPOSA;
|
|||
|
u16 RPOSB;
|
|||
|
u16 IARMSOS; //32
|
|||
|
u16 IBRMSOS; //34
|
|||
|
u16 EMUCON2;
|
|||
|
float KUrms; // <20><>ѹϵ<D1B9><CFB5>
|
|||
|
float KIArms; // Aͨ<41><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>
|
|||
|
float KIBrms; // Bͨ<42><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>
|
|||
|
float KPrms; // <20><><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>
|
|||
|
u16 RealUI[2]; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾֵ<CABE><D6B5><EFBFBD><EFBFBD><EFBFBD>ʴ<EFBFBD><CAB4>ڴ<EFBFBD>ֵʱ<D6B5><CAB1>ʾ 0.2%
|
|||
|
u32 RealPw; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾֵ<CABE><D6B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڴ<EFBFBD>ֵʱ<D6B5><CAB1>ʾ 0.2%
|
|||
|
u32 ChkSum;
|
|||
|
u16 RTCDota0; // RTCУ<43><D0A3><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
|
|||
|
u8 TemperAdj[2]; // <20>ߵ<EFBFBD><DFB5>²<EFBFBD><C2B2><EFBFBD>ֵ
|
|||
|
u8 RTCAdj[4]; // RTC<54>ߵ<EFBFBD><DFB5><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ֵ
|
|||
|
u8 CurAdj; // <20><><EFBFBD><EFBFBD>Ӱ<EFBFBD>첹<EFBFBD><ECB2B9>ֵ
|
|||
|
u8 OfsetAdjAcVolt[2]; //<2F><><EFBFBD>ݵ<EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD>OFFSET<45><54>ֵ
|
|||
|
u16 CorrectionTemper; //У<><D0A3>ʱ<EFBFBD>̱<EFBFBD><CCB1>Ƶ<EFBFBD><C6B5>¶<EFBFBD>
|
|||
|
}sDl645FirmParaFile_TypeDef; //58 Byte
|
|||
|
//---end У<><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>-------<2D><><EFBFBD>ɸ<EFBFBD><C9B8>ݼ<EFBFBD><DDBC><EFBFBD>оƬ<D0BE><C6AC><EFBFBD>ģ<EFBFBD>
|
|||
|
|
|||
|
//---start <20><><EFBFBD><EFBFBD>ֵ˲ʱֵ<CAB1><D6B5>ת<EFBFBD>ļ<EFBFBD>-------
|
|||
|
typedef struct
|
|||
|
{
|
|||
|
u8 ChkErrCnt;
|
|||
|
u32 Pw[2]; //pa,pb
|
|||
|
u32 UI[3]; // Ia=UI[0] Inal U
|
|||
|
u16 Frequency; //<2F><><EFBFBD><EFBFBD>Ƶ<EFBFBD>ʣ<EFBFBD><CAA3><EFBFBD>λ<EFBFBD><CEBB>
|
|||
|
u32 Pulse; //ǰ̨<C7B0><CCA8><EFBFBD><EFBFBD>
|
|||
|
u16 Pstart;
|
|||
|
//---<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>---
|
|||
|
u32 Pulse_Eg; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
u32 PDirect; //<2F><><EFBFBD>ʷ<EFBFBD><CAB7><EFBFBD>
|
|||
|
u32 ChkSum1; //<2F><><EFBFBD><EFBFBD>EMU<4D><55>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3>
|
|||
|
// У<><D0A3>ʹ<EFBFBD>ò<EFBFBD><C3B2><EFBFBD>
|
|||
|
u16 RatintU; // <20><EFBFBD><EEB6A8>ѹ
|
|||
|
u16 RatingI; // <20><EFBFBD><EEB6A8><EFBFBD><EFBFBD>
|
|||
|
u32 TempU; // <20><>ǰУ<C7B0><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ
|
|||
|
u32 TempI; // <20><>ǰУ<C7B0><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
u32 TempPw; // <20><>ǰУ<C7B0><D0A3><EFBFBD>㹦<EFBFBD><E3B9A6>
|
|||
|
} sDl645FrontTmp_TypeDef;
|
|||
|
//---end <20><><EFBFBD><EFBFBD>ֵ˲ʱֵ<CAB1><D6B5>ת<EFBFBD>ļ<EFBFBD>-------
|
|||
|
|
|||
|
//---start <20><><EFBFBD><EFBFBD>ֵ˲ʱֵ<CAB1>ļ<EFBFBD>-------
|
|||
|
typedef struct
|
|||
|
{
|
|||
|
struct sDl645FrontPubData_TypeDef
|
|||
|
{
|
|||
|
u16 U; //---<2D><>ѹ---NNN.N
|
|||
|
u32 Ia; //---<2D><><EFBFBD><EFBFBD>NNNN.NNNN(<28><><EFBFBD><EFBFBD>ֵҪ<D6B5><D2AA>3<EFBFBD><33>3С<33><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵҪ<D6B5><D2AA>2<EFBFBD><32>4С<34><D0A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>)---
|
|||
|
u32 In; //---<2D><><EFBFBD>ߵ<EFBFBD><DFB5><EFBFBD>
|
|||
|
sDF09 Pw; //---˲ʱ<CBB2>й<EFBFBD>p
|
|||
|
u16 Pf; //---<2D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>N.NNN--- <09><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>{Pf Pfa Pfb Pfc}
|
|||
|
u16 Angle; //---<2D><><EFBFBD><EFBFBD>NNN.N---
|
|||
|
u16 Frequency; //---Ƶ<><C6B5>NN.NN
|
|||
|
u32 PPwave; //---һ<><D2BB><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>NN.NNNN
|
|||
|
u8 Chnsel;
|
|||
|
u16 Temperature; //---NNN.N <20>¶<EFBFBD>
|
|||
|
u16 ClockBat; //---NN.NN <20><><EFBFBD>ص<EFBFBD>ѹ
|
|||
|
u32 tWorkBat; //---NNNN ʱ<>ӹ<EFBFBD><D3B9><EFBFBD>ʱ<EFBFBD>䣨<EFBFBD><E4A3A8><EFBFBD>ӣ<EFBFBD>
|
|||
|
u8 PDirect; //---ԭ<><D4AD><EFBFBD>ʷ<EFBFBD><CAB7><EFBFBD>
|
|||
|
|
|||
|
u16 CfIn; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƽ<EFBFBD>ж<EFBFBD>
|
|||
|
u8 CfTime; //
|
|||
|
u8 Step;
|
|||
|
u16 FrontStamp;
|
|||
|
u16 tMaxI; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD>䣬0.5sΪ<EFBFBD><EFBFBD>λ
|
|||
|
u8 SafeCurFlag; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD>־
|
|||
|
} PubData;
|
|||
|
|
|||
|
struct sDl645FrontPriData_TypeDef
|
|||
|
{
|
|||
|
u8 Flag; //---<2D><><EFBFBD><EFBFBD><EFBFBD>쳣<EFBFBD><ECB3A3>־---
|
|||
|
} PriData;
|
|||
|
|
|||
|
struct sDl645FrontPriPara_TypeDef
|
|||
|
{
|
|||
|
u32 PConstE; //<2F>й<EFBFBD><D0B9><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
u16 Crc;
|
|||
|
} PriPara;
|
|||
|
} sDl645Front_TypeDef;
|
|||
|
//---end <20><><EFBFBD><EFBFBD>ֵ˲ʱֵ<CAB1>ļ<EFBFBD>-------
|
|||
|
|
|||
|
//---start <20><><EFBFBD><EFBFBD>ͨѶ<CDA8><D1B6><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>-------
|
|||
|
typedef struct
|
|||
|
{
|
|||
|
u16 EFlag; //ͨѶ״̬
|
|||
|
|
|||
|
u16 RxLen; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
|||
|
u16 TxLen;
|
|||
|
u32 TimeOutStamp; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݳ<EFBFBD><DDB3><EFBFBD>
|
|||
|
u8 *pTx;
|
|||
|
|
|||
|
u8 fBps; //<2F><><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD>־
|
|||
|
u8 NewBps; //<2F>²<EFBFBD><C2B2><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
u32 NewBpsStamp; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
|
|||
|
//u8 TxAddr;
|
|||
|
|
|||
|
u8 RxBuf[MAX_COMPACK_SIZE];//<2F><><EFBFBD>ջ<EFBFBD><D5BB><EFBFBD>
|
|||
|
u8 TxBuf[MAX_COMPACK_SIZE];//<2F><><EFBFBD>ͻ<EFBFBD><CDBB><EFBFBD>
|
|||
|
}sComPack_TypeDef;
|
|||
|
//---end ͨѶ<CDA8><D1B6><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>-------
|
|||
|
/*****************************************************************************
|
|||
|
** Function name: fnUSART_RN8209_Init(u8 Cfg)
|
|||
|
**
|
|||
|
** Description: <09><><EFBFBD><EFBFBD>UART<52><54>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʡ<EFBFBD><CAA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽڸ<D6BD>ʽ<EFBFBD><CABD><EFBFBD>ơ<EFBFBD><C6A1><EFBFBD><EFBFBD>͡<EFBFBD><CDA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>оƬ<D0BE><C6AC>ʼ<EFBFBD><CABC>ʱִ<CAB1><D6B4>
|
|||
|
**
|
|||
|
** Parameters: <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
**
|
|||
|
** Returned value: NONE
|
|||
|
**
|
|||
|
******************************************************************************/
|
|||
|
#define PinMode_RN8209RX(x) ( (x == GPIO_MODE_OUT) ? (GPIO->PMA &= 0xfbffffff) : (GPIO->PMA |= 0x04000000) ) // P3.2
|
|||
|
#define PinMode_RN8209TX(x) ( (x == GPIO_MODE_OUT) ? (GPIO->PMA &= 0xf7ffffff) : (GPIO->PMA |= 0x08000000) ) // P3.3
|
|||
|
void fnUSART_RN8209_Init(u8 Cfg)
|
|||
|
{
|
|||
|
u32 ClkDiv;
|
|||
|
ClkDiv = fnDl645MainClock_Get();//<2F><>ȡϵͳ<CFB5><CDB3>ǰʱ<C7B0><CAB1>Ƶ<EFBFBD><C6B5>
|
|||
|
switch(Cfg & 0xE0)
|
|||
|
{
|
|||
|
case USART_BPS_600: //600
|
|||
|
ClkDiv=ClkDiv/(600*16)-1;//<2F><><EFBFBD><EFBFBD>ϵͳ<CFB5><CDB3>ǰʱ<C7B0><CAB1>Ƶ<EFBFBD><C6B5><EFBFBD>봮<EFBFBD><EBB4AE>ͨѶ<CDA8><D1B6><EFBFBD>ʣ<EFBFBD><CAA3><EFBFBD><EFBFBD><EFBFBD>UART2->BAUDֵ
|
|||
|
break;
|
|||
|
case USART_BPS_1200: //1200
|
|||
|
ClkDiv=ClkDiv/(1200*16)-1;
|
|||
|
break;
|
|||
|
case USART_BPS_2400: //2400
|
|||
|
ClkDiv=ClkDiv/(2400*16)-1;
|
|||
|
break;
|
|||
|
case USART_BPS_4800: //RN8209C<39><43>֧<EFBFBD>ֲ<EFBFBD><D6B2><EFBFBD><EFBFBD>ʣ<EFBFBD>4800
|
|||
|
ClkDiv=ClkDiv/(4800*16)-1;
|
|||
|
break;
|
|||
|
case USART_BPS_9600: //9600
|
|||
|
ClkDiv=ClkDiv/(9300*16)-1;
|
|||
|
break;
|
|||
|
default:
|
|||
|
ClkDiv=ClkDiv/(2400*16)-1; //2400
|
|||
|
break;
|
|||
|
}
|
|||
|
//UART2<54><32><EFBFBD><EFBFBD>RN8209ͨѶ.
|
|||
|
UART2->BAUD = ClkDiv;
|
|||
|
UART2->CTRL = (3 << 0) | /* uart enable ʹ<><CAB9>*/
|
|||
|
(3 << 6) | /* data bit: 8 <20><><EFBFBD><EFBFBD>λ*/
|
|||
|
(2 << 8); /* even żУ<C5BC><D0A3>*/
|
|||
|
PinMode_RN8209RX(GPIO_MODE_IN);//MCU<43><55><EFBFBD>ڽ<EFBFBD><DABD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
PinMode_RN8209TX(GPIO_MODE_OUT);//MCU<43><55><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
/*****************************************************************************
|
|||
|
** Function name: USART_ITConfig(u8 ComPort, FunctionalMODE USART_IT, FunctionalState NewState)
|
|||
|
**
|
|||
|
** Description: <09>˿ڹ<CBBF><DAB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʽ<EFBFBD><CABD><EFBFBD>ƺ<EFBFBD><C6BA><EFBFBD>
|
|||
|
**
|
|||
|
** Parameters: ComPort<72><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><F1A3A8B4><EFBFBD>0<EFBFBD><30>1<EFBFBD><31>2<EFBFBD><32>3<EFBFBD><33><EFBFBD><EFBFBD> USART_IT<49><54><EFBFBD><EFBFBD><EFBFBD>ڹ<EFBFBD><DAB9><EFBFBD><EFBFBD><EFBFBD>ʽѡ<CABD><EFBFBD><F1A3A8BD>ջ<EFBFBD><D5BB><EFBFBD><EFBFBD>ͣ<EFBFBD><CDA3><EFBFBD>
|
|||
|
** NewState<74><65><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬ѡ<CCAC><D1A1><EFBFBD><EFBFBD>ʹ<EFBFBD>ܻ<EFBFBD><DCBB>رգ<D8B1>
|
|||
|
**
|
|||
|
** Returned value: NONE
|
|||
|
**
|
|||
|
******************************************************************************/
|
|||
|
|
|||
|
void USART_ITConfig(u8 ComPort, FunctionalMODE USART_IT, FunctionalState NewState)
|
|||
|
{
|
|||
|
u8 Compose;
|
|||
|
Compose=(ComPort<<2)|(USART_IT<<1)|(NewState);
|
|||
|
switch(Compose)
|
|||
|
{
|
|||
|
|
|||
|
//----------------RN8209-----------------------------
|
|||
|
case (SCOM_PORT_RN8209<<2)|(USART_IT_RX<<1)|DISABLE: //RN8209ͨ<39>ſ<EFBFBD>|<7C><><EFBFBD><EFBFBD>|<7C>ر<EFBFBD>
|
|||
|
UART2->CTRL &=0xffe7; //<2F><><EFBFBD>ν<EFBFBD><CEBD><EFBFBD><EFBFBD>ж<EFBFBD>,<2C><><EFBFBD>ν<EFBFBD><CEBD>մ<EFBFBD><D5B4><EFBFBD><EFBFBD>ж<EFBFBD>
|
|||
|
UART2->STA = 0x3d; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϱ<D0B6>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD>մ<EFBFBD><D5B4><EFBFBD><EFBFBD><EFBFBD>־
|
|||
|
break;
|
|||
|
case (SCOM_PORT_RN8209<<2)|(USART_IT_RX<<1)|ENABLE: //RN8209ͨ<39>ſ<EFBFBD>|<7C><><EFBFBD><EFBFBD>|<7C><><EFBFBD><EFBFBD>
|
|||
|
UART2->CTRL |=0x18; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>մ<EFBFBD><D5B4><EFBFBD><EFBFBD>ж<EFBFBD>
|
|||
|
UART2->STA = 0x3d; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>жϱ<D0B6>־<EFBFBD><D6BE><EFBFBD><EFBFBD><EFBFBD>մ<EFBFBD><D5B4><EFBFBD><EFBFBD><EFBFBD>־
|
|||
|
break;
|
|||
|
case (SCOM_PORT_RN8209<<2)|(USART_IT_TX<<1)|DISABLE: //RN8209ͨ<39>ſ<EFBFBD>|<7C><><EFBFBD><EFBFBD>|<7C>ر<EFBFBD>
|
|||
|
UART2->CTRL &=0xfff9; //<2F><><EFBFBD>η<EFBFBD><CEB7><EFBFBD><EFBFBD>ж<EFBFBD>
|
|||
|
UART2->STA = 0x02; //<2F>巢<EFBFBD><E5B7A2><EFBFBD>жϱ<D0B6>־
|
|||
|
break;
|
|||
|
case (SCOM_PORT_RN8209<<2)|(USART_IT_TX<<1)|ENABLE: //RN8209ͨ<39>ſ<EFBFBD>|<7C><><EFBFBD><EFBFBD>|<7C><><EFBFBD><EFBFBD>
|
|||
|
UART2->CTRL |=0x06; //<2F><><EFBFBD>η<EFBFBD><CEB7><EFBFBD><EFBFBD>ж<EFBFBD>
|
|||
|
UART2->STA = 0x02; //<2F>巢<EFBFBD><E5B7A2><EFBFBD>жϱ<D0B6>־
|
|||
|
|
|||
|
UART2->TXD=*(ComPack[SCOM_PORT_RN8209].pTx++);
|
|||
|
ComPack[SCOM_PORT_RN8209].TxLen--;
|
|||
|
break;
|
|||
|
default: return;
|
|||
|
}
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
/*****************************************************************************
|
|||
|
** Function name:UART2_HANDLER(void)
|
|||
|
**
|
|||
|
** Description:<3A><>RN8209<30><39><EFBFBD>еײ<D0B5>ͨѶ<CDA8>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD>жϺ<D0B6><CFBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>RN8209<30><39><EFBFBD>ݵĽ<DDB5><C4BD>ռ<EFBFBD><D5BC><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
**
|
|||
|
** Parameters: NONE
|
|||
|
**
|
|||
|
** Returned value: NONE
|
|||
|
**
|
|||
|
******************************************************************************/
|
|||
|
void UART2_HANDLER(void)
|
|||
|
{
|
|||
|
u32 status;
|
|||
|
u8 temp;
|
|||
|
status = UART2->STA;
|
|||
|
/* UART error irq <20><><EFBFBD>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
|
|||
|
if((UART2->CTRL & 0x10) && (status & 0x3c))
|
|||
|
{
|
|||
|
ComPack[SCOM_PORT_RN8209].RxLen=0;
|
|||
|
ComPack[SCOM_PORT_RN8209].EFlag=SCOMPK_EFLAG_IDLE;
|
|||
|
UART2->STA = status;
|
|||
|
}
|
|||
|
/* receive data complete irq <20><><EFBFBD><EFBFBD><EFBFBD>жϴ<D0B6><CFB4><EFBFBD>*/
|
|||
|
if((UART2->CTRL & 0x8) && (status & 0x1))
|
|||
|
{
|
|||
|
temp = UART2->RXD;
|
|||
|
ComPack[SCOM_PORT_RN8209].RxBuf[ComPack[SCOM_PORT_RN8209].RxLen++]=temp;
|
|||
|
UART2->STA = 0x1; // clear receive IF
|
|||
|
}
|
|||
|
|
|||
|
/* transmit data complete irq <20><><EFBFBD><EFBFBD><EFBFBD>жϴ<D0B6><CFB4><EFBFBD>*/
|
|||
|
if((UART2->CTRL & 0x4) && (status & 0x2))
|
|||
|
{
|
|||
|
if(ComPack[SCOM_PORT_RN8209].TxLen>0)
|
|||
|
{
|
|||
|
//for(i=0;i<30;i++) __NOP();
|
|||
|
UART2->TXD=*(ComPack[SCOM_PORT_RN8209].pTx++);
|
|||
|
ComPack[SCOM_PORT_RN8209].TxLen--;
|
|||
|
UART2->STA = 0x2;
|
|||
|
}
|
|||
|
}
|
|||
|
UART2->STA = status;//<2F><><EFBFBD>жϱ<D0B6>ʶλ
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
/*****************************************************************************
|
|||
|
** Function name:Rn8209Delay(u16 t)
|
|||
|
**
|
|||
|
** Description:<3A><>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>
|
|||
|
**
|
|||
|
** Parameters: t <20><><EFBFBD><EFBFBD>ʱʱ<CAB1><CAB1>
|
|||
|
**
|
|||
|
** Returned value: NONE
|
|||
|
**
|
|||
|
******************************************************************************/
|
|||
|
|
|||
|
void Rn8209Delay(u16 t)
|
|||
|
{
|
|||
|
u16 i;
|
|||
|
if(Dl645Inactive.PubData.InactiveStamp) return;
|
|||
|
while(t--)
|
|||
|
{
|
|||
|
for (i = 0;i < 400;i++)
|
|||
|
;
|
|||
|
WDT->EN = 0xbb;
|
|||
|
}
|
|||
|
}
|
|||
|
/*****************************************************************************
|
|||
|
** Function name:fnRN8209_Write(u8 wReg,u8 *pBuf,u8 ucLen)
|
|||
|
**
|
|||
|
** Description:дRN8209<30>Ĵ<EFBFBD><C4B4><EFBFBD>
|
|||
|
**
|
|||
|
** Parameters:wReg <20>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7>*pBuf<75><66>д<EFBFBD><D0B4>ֵ<EFBFBD>Ĵ<EFBFBD><C4B4>ŵ<EFBFBD>ַ<EFBFBD><D6B7>ucLen<65><6E><EFBFBD><EFBFBD>д<EFBFBD><D0B4>ֵ<EFBFBD>ij<EFBFBD><C4B3><EFBFBD>
|
|||
|
**
|
|||
|
** Returned value: <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ-<2D>ɹ<EFBFBD><C9B9><EFBFBD>ʧ<EFBFBD><CAA7>
|
|||
|
**
|
|||
|
******************************************************************************/
|
|||
|
|
|||
|
ErrorStatus fnRN8209_Write(u8 wReg,u8 *pBuf,u8 ucLen)
|
|||
|
{
|
|||
|
u8 i,j,temp,chksum,Repeat;
|
|||
|
ErrorStatus err;
|
|||
|
if( (ucLen == 0) || (ucLen > 4) ) return(ERROR);
|
|||
|
for( Repeat =2; Repeat != 0 ; Repeat--)
|
|||
|
{
|
|||
|
err = SUCCESS;
|
|||
|
ComPack[SCOM_PORT_RN8209].pTx=&ComPack[SCOM_PORT_RN8209].TxBuf[0];
|
|||
|
|
|||
|
//д<><D0B4><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽڣ<D6BD><DAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽڵ<D6BD><DAB5><EFBFBD><EFBFBD><EFBFBD>λbit[7]=0:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>bit[6:0]Ϊ<><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4>ĵ<EFBFBD>ַ
|
|||
|
temp =wReg|0x80;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>1<EFBFBD><31>ʹ<EFBFBD><CAB9><EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>Ϊд<CEAA><D0B4><EFBFBD><EFBFBD>
|
|||
|
*(ComPack[SCOM_PORT_RN8209].pTx++)=temp;
|
|||
|
chksum = temp;
|
|||
|
for(i = ucLen; i > 0;i-- )
|
|||
|
{
|
|||
|
*(ComPack[SCOM_PORT_RN8209].pTx++)=pBuf[i-1]; //<2F><>RN8209<30><39><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
chksum +=pBuf[i-1];
|
|||
|
}
|
|||
|
chksum = ~chksum;
|
|||
|
*(ComPack[SCOM_PORT_RN8209].pTx++)=chksum;
|
|||
|
ComPack[SCOM_PORT_RN8209].TxLen = ucLen+2;
|
|||
|
ComPack[SCOM_PORT_RN8209].pTx=&ComPack[SCOM_PORT_RN8209].TxBuf[0];
|
|||
|
USART_ITConfig(SCOM_PORT_RN8209 , USART_IT_TX, ENABLE); //<2F><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>
|
|||
|
Rn8209Delay(30);//<2F>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
//RN8209дʹ<D0B4>ܻ<EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4>WData<74>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>飨<EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ȷд<C8B7>룩-----------------------
|
|||
|
ComPack[SCOM_PORT_RN8209].pTx=&ComPack[SCOM_PORT_RN8209].TxBuf[0];
|
|||
|
if(wReg == 0xEA)
|
|||
|
{//RN8209дʹ<D0B4>ܻ<EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>
|
|||
|
*(ComPack[SCOM_PORT_RN8209].pTx)=0X43;
|
|||
|
}
|
|||
|
else
|
|||
|
{//<2F><>д<EFBFBD><D0B4>WData<74>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
*(ComPack[SCOM_PORT_RN8209].pTx)=wReg;
|
|||
|
}
|
|||
|
ComPack[SCOM_PORT_RN8209].TxLen = 1;
|
|||
|
ComPack[SCOM_PORT_RN8209].RxLen=0;
|
|||
|
|
|||
|
USART_ITConfig(SCOM_PORT_RN8209 , USART_IT_RX, ENABLE); //<2F><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>
|
|||
|
USART_ITConfig(SCOM_PORT_RN8209 , USART_IT_TX, ENABLE); //<2F><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>
|
|||
|
memset(&ComPack[SCOM_PORT_RN8209].RxBuf[0] , 0x00 , 10);
|
|||
|
|
|||
|
Rn8209Delay(25);//<2F>ȴ<EFBFBD>ͨѶ<CDA8><D1B6><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
fnWDT_Restart();
|
|||
|
j = 0;
|
|||
|
if(wReg == 0xEA)
|
|||
|
{//RN8209дʹ<D0B4>ܻ<EFBFBD>д<EFBFBD><D0B4><EFBFBD><EFBFBD>
|
|||
|
if(pBuf[0] == 0XE5)
|
|||
|
{//RN8209дʹ<D0B4><CAB9>
|
|||
|
temp = ComPack[SCOM_PORT_RN8209].RxBuf[0];
|
|||
|
if(!(temp&0x10)) err = ERROR;
|
|||
|
}
|
|||
|
else if(pBuf[0] == 0XDC)
|
|||
|
{//RN8209д<39><D0B4><EFBFBD><EFBFBD>
|
|||
|
temp = ComPack[SCOM_PORT_RN8209].RxBuf[0];
|
|||
|
if(temp&0x10) err = ERROR;
|
|||
|
}
|
|||
|
}
|
|||
|
else
|
|||
|
{ //<2F><>д<EFBFBD><D0B4>WData<74>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>飨<EFBFBD><E9A3A8><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ComPack[SCOM_PORT_RN8209].RxBuf[j++]<5D><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>pBuf[i-1]<5D><>
|
|||
|
for(i = ucLen; i > 0;i--)
|
|||
|
{
|
|||
|
temp = ComPack[SCOM_PORT_RN8209].RxBuf[j++];
|
|||
|
if((wReg == 0)&&(i==2)) temp = 0;//<2F>쳣<EFBFBD><ECB3A3><EFBFBD><EFBFBD>
|
|||
|
if(temp != pBuf[i-1])
|
|||
|
{
|
|||
|
err = ERROR;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
fnWDT_Restart();
|
|||
|
if(err == SUCCESS) break;
|
|||
|
fnScomPk_Init(SCOM_PORT_RN8209);
|
|||
|
}
|
|||
|
USART_ITConfig(SCOM_PORT_RN8209 , USART_IT_TX, DISABLE); //<2F><><EFBFBD><EFBFBD>ʹ<EFBFBD>ܹر<DCB9>
|
|||
|
return(err);
|
|||
|
}
|
|||
|
/*****************************************************************************
|
|||
|
** Function name:fnRN8209_Read(u8 wReg,u8 *pBuf,u8 ucLen)
|
|||
|
**
|
|||
|
** Description:<3A><>RN8209<30>Ĵ<EFBFBD><C4B4><EFBFBD>
|
|||
|
**
|
|||
|
** Parameters:wReg <20>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD>ַ<EFBFBD><D6B7>*pBuf<75><66><EFBFBD><EFBFBD>ֵ<EFBFBD>Ĵ<EFBFBD><C4B4>ŵ<EFBFBD>ַ<EFBFBD><D6B7>ucLen<65><6E><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD>ij<EFBFBD><C4B3><EFBFBD>
|
|||
|
**
|
|||
|
** Returned value: <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʶ-<2D>ɹ<EFBFBD><C9B9><EFBFBD>ʧ<EFBFBD><CAA7>
|
|||
|
**
|
|||
|
******************************************************************************/
|
|||
|
|
|||
|
ErrorStatus fnRN8209_Read(u8 wReg,u8 *pBuf,u8 ucLen)
|
|||
|
{
|
|||
|
u8 i,temp,Repeat;
|
|||
|
u8 j=0;
|
|||
|
u8 chksum=0;
|
|||
|
ErrorStatus err;
|
|||
|
if(ucLen == 0) return(ERROR);
|
|||
|
|
|||
|
for( Repeat=2; Repeat != 0 ; Repeat--)
|
|||
|
{
|
|||
|
err = SUCCESS;
|
|||
|
temp = wReg ;
|
|||
|
chksum=wReg;
|
|||
|
j = 0;
|
|||
|
|
|||
|
ComPack[SCOM_PORT_RN8209].pTx=&ComPack[SCOM_PORT_RN8209].TxBuf[0];
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽڣ<D6BD><DAA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֽڵ<D6BD><DAB5><EFBFBD><EFBFBD><EFBFBD>λbit[7]=0:<3A><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>bit[6:0]Ϊ<><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4>ĵ<EFBFBD>ַ
|
|||
|
*(ComPack[SCOM_PORT_RN8209].pTx)=temp;
|
|||
|
ComPack[SCOM_PORT_RN8209].TxLen = 1;
|
|||
|
|
|||
|
USART_ITConfig(SCOM_PORT_RN8209 , USART_IT_RX, ENABLE); //<2F><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>
|
|||
|
|
|||
|
USART_ITConfig(SCOM_PORT_RN8209 , USART_IT_TX, ENABLE); //<2F><><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>
|
|||
|
memset(&ComPack[SCOM_PORT_RN8209].RxBuf[0] , 0x00 , 10);
|
|||
|
|
|||
|
Rn8209Delay(25);//<2F>ӳ٣<D3B3><D9A3>Եȴ<D4B5><C8B4><EFBFBD><EFBFBD>ݽ<EFBFBD><DDBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
fnWDT_Restart();
|
|||
|
|
|||
|
for(i = ucLen; i > 0;i--)
|
|||
|
{
|
|||
|
pBuf[i-1] = ComPack[SCOM_PORT_RN8209].RxBuf[j++]; //<2F><><EFBFBD><EFBFBD><EFBFBD>յ<EFBFBD><D5B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݱ<EFBFBD><DDB1>浽<EFBFBD><E6B5BD><EFBFBD><EFBFBD>pBuf[]
|
|||
|
chksum += pBuf[i-1];//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݵ<EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD>
|
|||
|
}
|
|||
|
chksum = ~chksum;
|
|||
|
temp=ComPack[SCOM_PORT_RN8209].RxBuf[j++];
|
|||
|
|
|||
|
if(temp!=chksum)
|
|||
|
{//<2F><>У<EFBFBD><D0A3><EFBFBD>ʹ<EFBFBD><CDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
err = ERROR;
|
|||
|
for(i = ucLen; i > 0;i--) pBuf[i-1] = 0;
|
|||
|
}
|
|||
|
if(err == SUCCESS) break;
|
|||
|
fnScomPk_Init(SCOM_PORT_RN8209);
|
|||
|
}
|
|||
|
|
|||
|
USART_ITConfig(SCOM_PORT_RN8209 , USART_IT_TX, DISABLE); //<2F><><EFBFBD><EFBFBD>ʹ<EFBFBD>ܹر<DCB9>
|
|||
|
ComPack[SCOM_PORT_RN8209].RxLen=0; //
|
|||
|
|
|||
|
return(err);
|
|||
|
}
|
|||
|
/*****************************************************************************
|
|||
|
** Function name: fnDl645_ComInitRN8209(void)
|
|||
|
**
|
|||
|
** Description: <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>RN8209<30>Ĵ<EFBFBD><C4B4><EFBFBD>
|
|||
|
**
|
|||
|
** Parameters: NONE
|
|||
|
**
|
|||
|
** Returned value: NONE
|
|||
|
**
|
|||
|
******************************************************************************/
|
|||
|
void fnDl645_ComInitRN8209(void)
|
|||
|
{
|
|||
|
Dl645FirmPara.HFConst = 0x1000;
|
|||
|
Dl645FirmPara.PStart = 0x0060;
|
|||
|
Dl645FirmPara.QStart = 0x0120;
|
|||
|
Dl645FirmPara.GPQA = 0x0000;
|
|||
|
Dl645FirmPara.GPQB = 0x0000;
|
|||
|
Dl645FirmPara.PhsA= 0x0000;
|
|||
|
Dl645FirmPara.PhsB= 0x0000;
|
|||
|
Dl645FirmPara.QPhsCal = 0x0000;
|
|||
|
Dl645FirmPara.APOSA = 0x0000;
|
|||
|
Dl645FirmPara.APOSB = 0x0000;
|
|||
|
Dl645FirmPara.RPOSA = 0x0000;
|
|||
|
Dl645FirmPara.RPOSB = 0x0000;
|
|||
|
Dl645FirmPara.IARMSOS = 0x0000;
|
|||
|
Dl645FirmPara.IBRMSOS = 0x0000;
|
|||
|
Dl645FirmPara.IBGain = 0x0000;
|
|||
|
//Dl645FirmPara.KUrms= 0x00000000;
|
|||
|
//Dl645FirmPara.KIArms= 0x00000000;
|
|||
|
//Dl645FirmPara.KIBrms= 0x00000000;
|
|||
|
|
|||
|
Dl645FirmPara.KPrms= 0x00000000;
|
|||
|
Dl645RN8209DataComm.ucTemp8 =0XE5;
|
|||
|
//if(fnRN8209_Write( 0xEA , Dl645RN8209DataComm.ucTempBuf , 1 ) == ERROR) return ; //дʹ<D0B4><CAB9>
|
|||
|
fnRN8209_Write( 0xEA , Dl645RN8209DataComm.ucTempBuf , 1 );
|
|||
|
|
|||
|
//if(fnRN8209_Write( 0x00 , (u8 *)&Dl645FirmPara.SYSCON , 2 ) == ERROR) return ; //дϵͳ<CFB5><CDB3><EFBFBD>ƼĴ<C6BC><C4B4><EFBFBD>
|
|||
|
//if(fnRN8209_Write( 0x01 , (u8 *)&Dl645FirmPara.EMUCON , 2 ) == ERROR) return ; //д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƼĴ<C6BC><C4B4><EFBFBD>
|
|||
|
|
|||
|
if(fnRN8209_Write( ADHFConst , (u8 *)&Dl645FirmPara.HFConst , 2 ) == ERROR) return ;
|
|||
|
if(fnRN8209_Write( ADPStart , (u8 *)&Dl645FirmPara.PStart , 2 ) == ERROR) return ;
|
|||
|
if(fnRN8209_Write( ADDStart , (u8 *)&Dl645FirmPara.QStart , 2 ) == ERROR) return ;
|
|||
|
|
|||
|
if(fnRN8209_Write( ADGPQA , (u8 *)&Dl645FirmPara.GPQA , 2 ) == ERROR) return; //д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
|
|||
|
if(fnRN8209_Write( ADGPQB , (u8 *)&Dl645FirmPara.GPQB , 2 ) == ERROR) return; //д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
|
|||
|
if(fnRN8209_Write( ADPhsA , (u8 *)&Dl645FirmPara.PhsA , 1 ) == ERROR) return; //д<><D0B4>λУ<CEBB><D0A3><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
|
|||
|
if(fnRN8209_Write( ADPhsB , (u8 *)&Dl645FirmPara.PhsB , 1 ) == ERROR) return; //д<><D0B4>λУ<CEBB><D0A3><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
|
|||
|
if(fnRN8209_Write( ADQPHSCAL , (u8 *)&Dl645FirmPara.QPhsCal , 2 ) == ERROR) return;
|
|||
|
if(fnRN8209_Write( ADAPOSA , (u8 *)&Dl645FirmPara.APOSA , 2 ) == ERROR) return;
|
|||
|
if(fnRN8209_Write( ADAPOSB , (u8 *)&Dl645FirmPara.APOSB , 2 ) == ERROR) return;
|
|||
|
if(fnRN8209_Write( ADRPOSA , (u8 *)&Dl645FirmPara.RPOSA , 2 ) == ERROR) return;
|
|||
|
if(fnRN8209_Write( ADRPOSB , (u8 *)&Dl645FirmPara.RPOSB , 2 ) == ERROR) return;
|
|||
|
if(fnRN8209_Write( ADIARMSOS , (u8 *)&Dl645FirmPara.IARMSOS , 2 ) == ERROR) return;
|
|||
|
if(fnRN8209_Write( ADIBRMSOS , (u8 *)&Dl645FirmPara.IBRMSOS , 2 ) == ERROR) return;
|
|||
|
if(fnRN8209_Write( ADIBGain , (u8 *)&Dl645FirmPara.IBGain , 2 ) == ERROR) return;
|
|||
|
if(fnRN8209_Write( ADEMUCON2 , (u8 *)&Dl645FirmPara.EMUCON2 , 2 ) == ERROR) return;
|
|||
|
fnWDT_Restart();
|
|||
|
Dl645RN8209DataComm.ucTemp8 =0XDC;
|
|||
|
fnRN8209_Write( 0xEA , Dl645RN8209DataComm.ucTempBuf , 1 ) ;
|
|||
|
fnDl645File_Write(Dl645FileId_FirmPara,Dl645FileItemInfoOffAddr_FirmPara_HFConst,(u8 *)&Dl645FirmPara.HFConst,42);
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
/*****************************************************************************
|
|||
|
** Function name: fnEMU_Init(void)
|
|||
|
**
|
|||
|
** Description: <09><><EFBFBD><EFBFBD>EMU<4D><55>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>RN8209<30>Ĵ<EFBFBD><C4B4><EFBFBD>
|
|||
|
**
|
|||
|
** Parameters: NONE
|
|||
|
**
|
|||
|
** Returned value: NONE
|
|||
|
**
|
|||
|
******************************************************************************/
|
|||
|
void fnEMU_Init(void)
|
|||
|
{
|
|||
|
|
|||
|
//д<><D0B4><EFBFBD><EFBFBD>оƬ<D0BE><C6AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
Dl645FirmPara.EMUCON2 = 0x300;
|
|||
|
|
|||
|
Dl645RN8209DataComm.ucTemp8 =0XE5;
|
|||
|
//if(fnRN8209_Write( 0xEA , Dl645RN8209DataComm.ucTempBuf , 1 ) == ERROR) return ; //дʹ<D0B4><CAB9>
|
|||
|
fnRN8209_Write( 0xEA , Dl645RN8209DataComm.ucTempBuf , 1 );
|
|||
|
|
|||
|
//if(fnRN8209_Write( ADSYSCON , (u8 *)&Dl645FirmPara.SYSCON , 2 ) == ERROR) return ; //дϵͳ<CFB5><CDB3><EFBFBD>ƼĴ<C6BC><C4B4><EFBFBD>
|
|||
|
//if(fnRN8209_Write( ADEMUCON , (u8 *)&Dl645FirmPara.EMUCON , 2 ) == ERROR) return ; //д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƼĴ<C6BC><C4B4><EFBFBD>
|
|||
|
if(fnRN8209_Write( ADHFConst , (u8 *)&Dl645FirmPara.HFConst , 2 ) == ERROR) return ;
|
|||
|
if(fnRN8209_Write( ADPStart , (u8 *)&Dl645FirmPara.PStart , 2 ) == ERROR) return ;
|
|||
|
if(fnRN8209_Write( ADDStart , (u8 *)&Dl645FirmPara.QStart , 2 ) == ERROR) return ;
|
|||
|
|
|||
|
if(fnRN8209_Write( ADGPQA , (u8 *)&Dl645FirmPara.GPQA , 2 ) == ERROR) return; //д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
|
|||
|
if(fnRN8209_Write( ADGPQB , (u8 *)&Dl645FirmPara.GPQB , 2 ) == ERROR) return; //д<><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
|
|||
|
if(fnRN8209_Write( ADPhsA , (u8 *)&Dl645FirmPara.PhsA , 1 ) == ERROR) return; //д<><D0B4>λУ<CEBB><D0A3><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
|
|||
|
if(fnRN8209_Write( ADPhsB , (u8 *)&Dl645FirmPara.PhsB , 1 ) == ERROR) return; //д<><D0B4>λУ<CEBB><D0A3><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD>
|
|||
|
if(fnRN8209_Write( ADQPHSCAL , (u8 *)&Dl645FirmPara.QPhsCal , 2 ) == ERROR) return;
|
|||
|
if(fnRN8209_Write( ADAPOSA , (u8 *)&Dl645FirmPara.APOSA , 2 ) == ERROR) return;
|
|||
|
if(fnRN8209_Write( ADAPOSB , (u8 *)&Dl645FirmPara.APOSB , 2 ) == ERROR) return;
|
|||
|
if(fnRN8209_Write( ADRPOSA , (u8 *)&Dl645FirmPara.RPOSA , 2 ) == ERROR) return;
|
|||
|
if(fnRN8209_Write( ADRPOSB , (u8 *)&Dl645FirmPara.RPOSB , 2 ) == ERROR) return;
|
|||
|
if(fnRN8209_Write( ADIARMSOS , (u8 *)&Dl645FirmPara.IARMSOS , 2 ) == ERROR) return;
|
|||
|
if(fnRN8209_Write( ADIBRMSOS , (u8 *)&Dl645FirmPara.IBRMSOS , 2 ) == ERROR) return;
|
|||
|
if(fnRN8209_Write( ADIBGain , (u8 *)&Dl645FirmPara.IBGain , 2 ) == ERROR) return;
|
|||
|
if(fnRN8209_Write( ADEMUCON2 , (u8 *)&Dl645FirmPara.EMUCON2 , 2 ) == ERROR) return;
|
|||
|
fnWDT_Restart();
|
|||
|
Dl645RN8209DataComm.ucTemp8 =0XDC;
|
|||
|
fnRN8209_Write( 0xEA , Dl645RN8209DataComm.ucTempBuf , 1 ) ; //<2F>ر<EFBFBD>дʹ<D0B4><CAB9>
|
|||
|
}
|
|||
|
/*****************************************************************************
|
|||
|
** Function name: fnDl645Front_Init(void)
|
|||
|
**
|
|||
|
** Description: <09><><EFBFBD><EFBFBD>ģ<EFBFBD><C4A3><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD>RAM<41><4D><EFBFBD>ݽ<EFBFBD><DDBD>г<EFBFBD>ʼ<EFBFBD><CABC>
|
|||
|
**
|
|||
|
** Parameters: NONE
|
|||
|
**
|
|||
|
** Returned value: NONE
|
|||
|
**
|
|||
|
******************************************************************************/
|
|||
|
void fnDl645Front_Init(void)
|
|||
|
{
|
|||
|
u8 i,j;
|
|||
|
u32 ChkSum;
|
|||
|
Dl645Front.PriData.Flag |= FRONT_FLAG_RN8209RST;//<2F><>RN8209<30><39>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ʶλ
|
|||
|
|
|||
|
memset(&Dl645FrontTmp , 0 , sizeof(sDl645FrontTmp_TypeDef) );//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD>RAM<41><4D><EFBFBD><EFBFBD>
|
|||
|
memset(&Dl645Front , 0 , sizeof(sDl645Front_TypeDef) );//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>õ<EFBFBD><C3B5><EFBFBD>RAM<41><4D><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
//д<><D0B4>У<EFBFBD><D0A3><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD>ȷ<EFBFBD>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD>ٴ<EFBFBD>д<EFBFBD>롣<EFBFBD><EBA1A3><EFBFBD><EFBFBD>ѭ<EFBFBD><D1AD>д<EFBFBD><D0B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>5<EFBFBD>Ρ<EFBFBD>
|
|||
|
fnDl645File_Read(Dl645FileId_FirmPara , 0 , (u8 *)&Dl645FirmPara , sizeof(sDl645FirmParaFile_TypeDef) );//<2F><>E2<45>б<EFBFBD><D0B1><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
Dl645FrontTmp.ChkSum1 = Dl645FirmPara.ChkSum;
|
|||
|
for(i=0;i<5;i++)
|
|||
|
{
|
|||
|
fnEMU_Init();
|
|||
|
SystemDelay(10);
|
|||
|
ChkSum = 0;
|
|||
|
for(j=0;j<5;j++)
|
|||
|
{
|
|||
|
fnRN8209_Read( ADEMUStatus , (u8 *)&ChkSum , 3 ) ;
|
|||
|
if(!(ChkSum & 0x010000)) break;
|
|||
|
SystemDelay(10);
|
|||
|
}
|
|||
|
fnWDT_Restart();
|
|||
|
ChkSum = ChkSum & 0x0000ffff;
|
|||
|
if(Dl645FrontTmp.ChkSum1 == ChkSum)
|
|||
|
{
|
|||
|
Dl645Front.PriData.Flag &= ~FRONT_FLAG_RN8209RST;
|
|||
|
break;
|
|||
|
}
|
|||
|
}
|
|||
|
if(i>=5)
|
|||
|
{//<2F><>У<EFBFBD><D0A3>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>5<EFBFBD>δ<EFBFBD><CEB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD>У<EFBFBD><D0A3>ֵ
|
|||
|
Dl645FirmPara.ChkSum = 0;
|
|||
|
SystemDelay(1);
|
|||
|
Dl645FirmPara.ChkSum = ChkSum & 0x0000ffff;
|
|||
|
Dl645FrontTmp.ChkSum1 = Dl645FirmPara.ChkSum;
|
|||
|
fnDl645File_Write(Dl645FileId_FirmPara,Dl645FileItemInfoOffAddr_FirmPara_ChkSum,(u8 *)&Dl645FirmPara.ChkSum,4);
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
/*****************************************************************************
|
|||
|
** Function name: fnDl645Front_Exec(void)
|
|||
|
**
|
|||
|
** Description: <09>Ӽ<EFBFBD><D3BC><EFBFBD>оƬ<D0BE><C6AC>ȡ<EFBFBD><C8A1><EFBFBD>ݣ<EFBFBD><DDA3><EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʡ<EFBFBD><CAA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>ʡ<EFBFBD><CAA1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD><D8BC><EFBFBD>
|
|||
|
**
|
|||
|
** Parameters: NONE
|
|||
|
**
|
|||
|
** Returned value: NONE
|
|||
|
**
|
|||
|
******************************************************************************/
|
|||
|
|
|||
|
void fnDl645Front_Exec(void)
|
|||
|
{
|
|||
|
u8 i;
|
|||
|
u32 TempU,TempI,TempIn;
|
|||
|
u32 TempStatus;
|
|||
|
u16 TempAngle;
|
|||
|
u8 PFlag;
|
|||
|
|
|||
|
if(Dl645Front.PriData.Flag & FRONT_FLAG_RN8209RST)//RN8209<30><39>λ
|
|||
|
{
|
|||
|
fnDl645Front_Init();
|
|||
|
Dl645Front.PriData.Flag &= ~FRONT_FLAG_RN8209RST;
|
|||
|
return;
|
|||
|
}
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬<D7B4><CCAC>У<EFBFBD><D0A3><EFBFBD><EFBFBD>
|
|||
|
TempStatus = 0;
|
|||
|
fnRN8209_Read( 0x2d , (u8 *)&TempStatus , 3 ) ;
|
|||
|
if(!(TempStatus & 0x010000))
|
|||
|
{//У<><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD>ͼ<EFBFBD><CDBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD>У<EFBFBD><D0A3>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD>
|
|||
|
if(Dl645FrontTmp.ChkSum1 == (TempStatus&0x0000ffff))
|
|||
|
{//У<><D0A3>ֵ<EFBFBD><D6B5>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
Dl645FrontTmp.ChkErrCnt = 0 ;
|
|||
|
}
|
|||
|
else
|
|||
|
{
|
|||
|
Dl645FrontTmp.ChkErrCnt++;
|
|||
|
if(Dl645FrontTmp.ChkErrCnt > 3)
|
|||
|
{//У<><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>3<EFBFBD>κ<CEBA>λRN8209
|
|||
|
Dl645Front.PriData.Flag |= FRONT_FLAG_RN8209RST;
|
|||
|
Dl645FrontTmp.ChkErrCnt = 0 ;
|
|||
|
}
|
|||
|
return;
|
|||
|
}
|
|||
|
}
|
|||
|
//<2F>жϹ<D0B6><CFB9>ʷ<EFBFBD><CAB7><EFBFBD>
|
|||
|
if(TempStatus & 0x020000)
|
|||
|
{
|
|||
|
Dl645Front.PubData.PDirect = INVERSION ;
|
|||
|
} //<2F>жϹ<D0B6><CFB9>ʷ<EFBFBD><CAB7><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7>ġ<EFBFBD>
|
|||
|
else
|
|||
|
{
|
|||
|
Dl645Front.PubData.PDirect = POSITIVE ;
|
|||
|
}
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD>
|
|||
|
for(i = 0 ; i < 3 ; i++)
|
|||
|
{
|
|||
|
Dl645FrontTmp.UI[i] = 0;//<2F><><EFBFBD><EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
fnRN8209_Read( 0x22+i , (u8 *)&Dl645FrontTmp.UI[i] , 3 ) ;
|
|||
|
if(Dl645FrontTmp.UI[i]&0x00800000) Dl645FrontTmp.UI[i]=0;
|
|||
|
}
|
|||
|
//<2F><>Ƶ<EFBFBD><C6B5>
|
|||
|
fnRN8209_Read( 0x25 , (u8 *)&Dl645FrontTmp.Frequency , 2 ) ;
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD><EFBFBD><EFBFBD>д<EFBFBD><D0B4><EFBFBD>
|
|||
|
fnRN8209_Read( 0x26 , (u8 *)&Dl645FrontTmp.Pw[0] , 4 ) ;
|
|||
|
fnRN8209_Read( 0x27 , (u8 *)&Dl645FrontTmp.Pw[1] , 4 ) ;
|
|||
|
if(Dl645FrontTmp.Pw[0]&0x80000000)
|
|||
|
{
|
|||
|
Dl645FrontTmp.Pw[0]=(~Dl645FrontTmp.Pw[0])+1;PFlag = 1;
|
|||
|
}
|
|||
|
else PFlag = 0;
|
|||
|
//<2F><><EFBFBD>㹦<EFBFBD><E3B9A6>
|
|||
|
Dl645Front.PubData.Pw = fnDFConver_Hex32ToDF09((s32)((Dl645FrontTmp.Pw[0])*((Dl645FirmPara.KPrms))));
|
|||
|
if(PFlag) Dl645Front.PubData.Pw.S = 1;
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD>
|
|||
|
Dl645Front.PubData.U = 0x7fff&(fnDFConver_Bcd16To16((s16)(Dl645FrontTmp.UI[2]/(10*(Dl645FirmPara.KUrms))))); //<2F><>ѹ
|
|||
|
TempI = (s32)(Dl645FrontTmp.UI[0]/(Dl645FirmPara.KIArms));
|
|||
|
TempIn = (s32)(Dl645FrontTmp.UI[1]/(Dl645FirmPara.KIBrms));
|
|||
|
Dl645Front.PubData.Ia = fnDFConver_Bcd32To32(TempI);
|
|||
|
Dl645Front.PubData.In = fnDFConver_Bcd32To32(TempIn);
|
|||
|
if(PFlag) Dl645Front.PubData.Ia |= 0x80000000;
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Чֵ<D0A7><D6B5><EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
//<2F><><EFBFBD>㹦<EFBFBD><E3B9A6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
TempU &=0x00ffffff;
|
|||
|
if(TempU&0x00800000) TempU=((~TempU)&0x00ffffff)+1;
|
|||
|
Dl645Front.PubData.Pf = fnHexToBcd_u16((u16)((float)TempU/8388.608));
|
|||
|
Dl645Front.PubData.Angle= fnHexToBcd_u16(TempAngle*3600/32768);
|
|||
|
//<2F><><EFBFBD><EFBFBD>С<EFBFBD><D0A1>0.0030<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㣬<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0.999
|
|||
|
if(((Dl645Front.PubData.Pw.Dat2&0x7f)==0)&&(Dl645Front.PubData.Pw.Dat1==0)&&(Dl645Front.PubData.Pw.Dat0<0x30))
|
|||
|
{
|
|||
|
Dl645Front.PubData.Pw.Dat0 = 0;
|
|||
|
Dl645Front.PubData.Pw.Dat1 = 0;
|
|||
|
Dl645Front.PubData.Pw.Dat2 = 0;
|
|||
|
}
|
|||
|
//<2F><><EFBFBD><EFBFBD>С<EFBFBD><D0A1><EFBFBD><EFBFBD><F0B6AFB5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
if((Dl645Front.PubData.Ia&0x7fffffff) < 0x00000150) {Dl645Front.PubData.Ia = 0;Dl645Front.PubData.Pf = 0x0999;}
|
|||
|
if((Dl645Front.PubData.In&0x7fffffff) < 0x00000150) Dl645Front.PubData.In = 0;
|
|||
|
|
|||
|
//<2F><>ѹƵ<D1B9>ʼ<EFBFBD><CABC><EFBFBD>
|
|||
|
Dl645Front.PubData.Frequency = fnHexToBcd_u16((u16)(((u32)357954500)/((u32)8*Dl645FrontTmp.Frequency)));
|
|||
|
if((Dl645Front.PubData.Ia&0x7fffffff) > 0x00550000)
|
|||
|
{
|
|||
|
if(Dl645Front.PubData.tMaxI < 2405) Dl645Front.PubData.tMaxI++;
|
|||
|
}
|
|||
|
else Dl645Front.PubData.tMaxI = 0;
|
|||
|
|
|||
|
if(Dl645Front.PubData.Pw.S) Dl645Front.PubData.Pf |=0x8000;
|
|||
|
|
|||
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>壬<EFBFBD><E5A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
Dl645FrontTmp.Pulse = 0;
|
|||
|
fnRN8209_Read( 0x2a , (u8 *)&Dl645FrontTmp.Pulse , 3 ) ;
|
|||
|
if(Dl645FrontTmp.Pulse > 100) Dl645FrontTmp.Pulse = 0; //<2F>ݴ<EFBFBD><DDB4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
Dl645FrontTmp.Pulse_Eg+=Dl645FrontTmp.Pulse;
|
|||
|
|
|||
|
#if DL645SOFT_DEBUG
|
|||
|
Dl645FrontTmp.Pulse_Eg+=1;
|
|||
|
#endif
|
|||
|
|
|||
|
}
|