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

📄 sircs_m04_c2.h

📁 sircs decoder, for amplifier.. this is to decode
💻 H
字号:
/****************************************************************************************************/
/* $Header  : 																				  		
/* AUTHOR 	: TC PUI																  				
/* FILE NAME: SIRCS.H																		  		
/* PURPOSE	: SIRCS HEADER															  		
/* MODEL	: 2004 CIS 2-CH AMP 										  						
/* Copyright (c) 2004 Sony Corporation All Rights Reserved					  						
/****************************************************************************************************/
#ifndef _SIRCS_H
#define _SIRCS_H

#ifdef 	_SIRCS_C
#define SIRCS_EXT
#else
#define SIRCS_EXT	extern
#endif
/****************************************************************************************************/
/* global function prototype												  						
/****************************************************************************************************/
SIRCS_EXT __interrupt void SircsCodeTx(void);			/* SIRCS data output transmit				*/
SIRCS_EXT void SircsOutControl(void);					/* Start sending sircs data				 	*/
SIRCS_EXT void SirOutInitialize(void);					/* Initialize 16bit timer/counter register 	*/

SIRCS_EXT void SirInitialize(void);
SIRCS_EXT void SirControl(void);
SIRCS_EXT unsigned int GetSircsID(unsigned long int code);
SIRCS_EXT void SirExIntEnable(void);
SIRCS_EXT void SirExIntDisable(void);
SIRCS_EXT unsigned char GetSircsAct(unsigned int id);
SIRCS_EXT void SirCarrierIni(void);
SIRCS_EXT void SirCarrierStop(void);


/****************************************************************************************************/
/* global define value														  						
/****************************************************************************************************/

#define SirCode			SirBuff.SircsCode
#define SirBit			SirBuff.SircsBit

#define CANCEL_TIME		_100mS			/* sircs cancel time: 100ms 	*/
#define _SIR_COD 		0x0330			/* sircs data code (D10 - D19)	*/
#define _MAX_NUM_1		13				/* Warning : depend on maximum number of bit '1' that the sircs code are using */
#define _TIM16_START	0x23			/* start 16 bit timer/counter 	*/

/* IntSircs */
#define	SIR_COD_INIT	0				/* status0: initialize 	*/
#define SIR_COD_GUID	1				/* status1: gude pulse 	*/
#define SIR_COD_TOFF	2				/* status2: off time 	*/
#define SIR_COD_T_ON	3				/* status3: on time 	*/
#define SIR_COD_FNSH	4				/* status4: code finish */

#define TMIN_TGUIDP		22				/* guid p.t.min : 2.2ms */
#define TMAX_TGUIDP		26				/* guid p.t.max : 2.6ms */
#define TMIN_TOFEND		3				/* off time min : 0.3ms */
#define TMAX_TOFEND		9				/* off time max : 0.9ms */
#define TMIN_TOFON0		10				/* off+on0 min  : 1.0ms */
#define TMAX_TOFON0		14				/* off+on0 max  : 1.4ms */
#define TMIN_TOFON1		16				/* off+on1 min  : 1.6ms */
#define TMAX_TOFON1		20				/* off+on1 max  : 2.0ms */
#define TMIN_CODEND		10				/* code end min : 1.0ms */

#define BCNT_02BIT		2				/*  2 bit code 	*/
#define BCNT_08BIT		8				/*  8 bit code 	*/
#define BCNT_10BIT		10				/* 10 bit code 	*/
#define BCNT_11BIT		11				/* 11 bit code 	*/
#define BCNT_12BIT		12				/* 12 bit code 	*/
#define BCNT_15BIT		15				/* 15 bit code 	*/
#define BCNT_20BIT		20				/* 20 bit code 	*/

#define MASK_02BIT		0x00000003		/* mask 3 bit 	*/
#define MASK_08BIT		0x000000ff		/* mask 8 bit 	*/
#define MASK_10BIT		0x000003ff		/* mask 10 bit 	*/
#define MASK_11BIT		0x000007ff		/* mask 11 bit 	*/
#define MASK_12BIT		0x00000fff		/* mask 12 bit 	*/
#define MASK_15BIT		0x00007fff		/* mask 15 bit 	*/
#define MASK_20BIT		0x000fffff		/* mask 20 bit 	*/

#define COD_BIT_ON		0x0001			/* sircs data code bit on */


/* ------------------------ sircs output A1 format ---------------------------- */
#define _MC_STBIT	0xE2D3				/* 2.4 msec+OFFSET	0xE2B4+0x001F	*/
#define _MC_DAT_1	0xF19F				/* 1.2 msec+OFFSET	0xF15A+0x0045	*/
#define _MC_DAT_0	0xF8FF				/* 0.6 msec+OFFSET	0xF8AD+0x0052	*/
#define _MC_OFBIT	0xF8FC				/* 0.6 msec+OFFSET	0xF8AD+0x0047	*/
#define _MC_GAP_T	0x85EE				/* 10.0	msec						*/
#define _MC_DELAY	0x6631				/* 12.6 msec						*/		
#define _MC_GAP_0	0x1CF3				/* 18.6	msec						*/
#define _MC_GAP_1	0x2446				/* 18.0	msec						*/
#define _MC_GAP_2	0x2B99				/* 17.4	msec						*/
#define _MC_GAP_3	0x32EC				/* 16.8	msec						*/
#define _MC_GAP_4	0x3A3F				/* 16.2	msec						*/
#define _MC_GAP_5	0x4170				/* 15.6	msec						*/
#define _MC_GAP_6	0x48E8				/* 15.0	msec						*/
#define _MC_GAP_7	0x5038				/* 14.4	msec						*/
#define _MC_GAP_8	0x5787				/* 13.8	msec						*/
#define _MC_GAP_9	0x5EEB				/* 13.2	msec						*/
#define _MC_GAP_10	0x6634				/* 12.6	msec						*/
#define _MC_GAP_11	0x6D7B				/* 12.0	msec						*/
#define _MC_GAP_12	0x74D7				/* 11.4	msec						*/
#define _MC_GAP_13	0x7C2A				/* 10.8	msec						*/
#define _MC_GAP_14	0x837D				/* 10.2	msec						*/
#define _MC_GAP_15	0x8AD0				/* 9.6	msec						*/
#define _MC_GAP_16	0x9223				/* 9.0	msec						*/
#define _MC_GAP_17	0x9976				/* 8.4	msec						*/
#define _MC_GAP_18	0xA019				/* 7.8	msec						*/
#define _MC_GAP_19	0xA81C				/* 7.2	msec						*/
#define _MC_GAP_20	0xAF6F				/* 6.6	msec						*/
#define _MC_START	0xFFFF				/* 4/12.5MHz						*/
#define	_BIT_NUM	20					/* number bit of sircs 				*/

/* ------------- sircs output status (sircs_out_stt) -------------------------- */
enum {
	_SOUT_END=0,
	_SOUT_BUSOFF,
	_SOUT_OFFBIT,
	_SOUT_DATA,
	_SOUT_GAP

};
/* ---------------------------------------------------------------------------- */


/* GetSirAct */
#define S_OFF			0x00			/* sircs code id:off 			*/
#define SIROFF			0x00			/* sircs code in:off 			*/
#define SIRFST			0x01			/* sircs code in:first 			*/
#define SIRCNT			0x02			/* sircs code in:continue		*/
#define UNKNWN			0xff			/* sircs code in:unknown 		*/
#define SCHTOK			1				/* sircs chattering o.k. 		*/
#define SFSTRG			0x80			/* sir.code in 1st trigger		*/
#define SCHTED			0xff			/* chatt. conunt up end 		*/

enum {
	S_NOP = 0,   						/* 000	NOP          			*/	
	S_POWERONOFF,						/* 001	I/O          			*/	
	S_POWERON,							/* 002  POWER ON				*/
	S_POWEROFF,							/* 003  POWER OFF				*/
	S_VOLUP,     						/* 004	VOL +        			*/	
	S_VOLDW,     						/* 005	VOL -        			*/	
	S_MUTING,    						/* 006	MUTING       			*/	
	SIRCS_EVENT_NUM						/* Sircs Event Number			*/
};

/* sircs command type */
enum{
	SIRCOM_ID0 = 0,						/* sircs command type : ID0 	*/
	SIRCOM_ID1,							/* sircs command type : ID1 	*/
	SIRCOM_ID2,							/* sircs command type : ID2 	*/
	SIRCOM_ID3,							/* sircs command type : ID3 	*/
	SIRCOM_ID4,							/* sircs command type : ID4 	*/
	SIRCOM_ID5,							/* sircs command type : ID5 	*/
	SIRCOM_ID6,							/* sircs command type : ID6 	*/
	SIRCOM_ID7,							/* sircs command type : ID7 	*/
	SIRCOM_ID8,							/* sircs command type : ID8 	*/
	SIRCOM_ID9,							/* sircs command type : ID9 	*/
	SIRCOM_ID10,						/* sircs command type : ID10	*/
	SIRCOM_ID11,						/* sircs command type : ID11	*/
	SIRCOM_ID12,						/* sircs command type : ID12	*/
	SIRCOM_IDMAX						/* sircs command type : ID Max	*/
};
/****************************************************************************************************/
/* variable type define														  						
/****************************************************************************************************/

typedef struct {
	unsigned char Sircom;				/* sircs command type 			*/
} SIR_;

typedef struct {
	unsigned long SircsCode;			/* sircs code buffer 			*/
	unsigned char SircsBit;				/* sircs bit buffer 			*/
} SIR_BUFF_;

/****************************************************************************************************/
/* global variable															  						
/****************************************************************************************************/
SIRCS_EXT SIR_		Sir;
SIRCS_EXT SIR_BUFF_	SirBuff;

SIRCS_EXT unsigned char SIRCSDATAOUT[_BIT_NUM];	/* SIRCS OUT data					*/
SIRCS_EXT unsigned char	sircs_out_bit;			/* transmit bit count 				*/
SIRCS_EXT unsigned char	sircs_out_stt;			/* transmit status 					*/
SIRCS_EXT unsigned char sircs_out_frame;		/* number of frame transmit 		*/ 
SIRCS_EXT unsigned char sircs_firstime;			/* first time sircs data transmit 	*/
SIRCS_EXT unsigned int	sircs_out_gap_len;		/* gap length between two frame 	*/
SIRCS_EXT unsigned char sircs_out_num_dat_1;	/* number of bit '1' data 			*/
SIRCS_EXT unsigned int  siro_time;				/* gap between 2 sircs output		*/

SIRCS_EXT const unsigned  int SirDecTable0[SIRCS_EVENT_NUM][SIRCOM_IDMAX];
SIRCS_EXT const unsigned  char SirDecNumOne[SIRCS_EVENT_NUM][SIRCOM_IDMAX];
/****************************************************************************************************/
#endif

⌨️ 快捷键说明

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