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