亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ir.c

?? 關于紅外遙控器的接收的一端程序
?? C
字號:
/************************************************************************/
/*	Copyright(c)  2003, ShenZhen, All Rights Reserved	                                                        */
/*	Created By DuirkWang, 08.21.2003 										*/
/* 	File: 	Ir.c													                	*/
/*	Ver:	1.0.1															*/
/*	Project:        															*/
/*	Description: NEC format   IR process routine									*/
/************************************************************************/
#include "Config.h"
#include "Reg52.h"
#include "global.h"
#include "Extern.h"
#include "Event.h"
#include "tools.h"
#include "i2c.h"
#include "ir.h"
#include "Avswitch.h"
#ifdef CD_CHANGER
#include "Cdc.h"
#endif
#include "command.h"
#include "ir_lut.h"

// Hoe many repeat message will ignore before send it to the FSM's
#define REPEAT_DELAY		5

enum {
	IR_IDLE,
	IR_HEADER,
	IR_CUSTOM
};

BYTE idata IrState = IR_IDLE;
Uint16 idata IrData = 0;
BYTE xdata IrDataBitCnt = 0;

WORD	xdata ir_code=0x0ff;
WORD	xdata custom_code;				// Hold the custom (remote ID) code
BYTE	xdata last_ir_code=0x0ff;	// Hold the ir code
BYTE	xdata repeat_delay = REPEAT_DELAY;	// Repeat code counter
BYTE	xdata valid_repeat = 0;
extern BIT dac_key_flag;
Uint8 idata eject_flag_cnt = 0;
extern BIT open_require_flag;
extern BIT close_require_flag;

#define IR_LEADER     27000
#define DATA_0          2240
#define DATA_1          4480
#define IR_REPEAT_LEADER      23000

#define LEADER_MARGIN	800
#define IR_MARGIN		300

void Require_flag_set();
void Close_flag_set();

void InitInt0()
{
    	IT0=1;		//down edge interrupt
    	PX0=1;
	IE0=0;
	EX0=1;		//open INT0
	EA=1;
}


void IR_init()
{
	TMOD&=0x0F;
	TMOD|=0x10;
	TH1 = 0;
	TL1 = 0;
	TR1 = 0;
}

static void IR_decode()
{
	WORD width;
	BIT IrError = 0;

	HIBYTE(width) = TH1;
	LOBYTE(width) = TL1;

	if (TF1 == 1) {
		IrState = IR_IDLE;
		TF1 = 0;
     		}

	switch (IrState) {
		case IR_IDLE:
			IrState = IR_HEADER;
			break;

		case IR_HEADER:
			if ((width >= IR_LEADER - LEADER_MARGIN) && (width <= IR_LEADER +LEADER_MARGIN)) {
				IrState = IR_CUSTOM;
				IrData = IrDataBitCnt = 0;
			}else if((width >= IR_REPEAT_LEADER - LEADER_MARGIN) &&
							(width <= IR_REPEAT_LEADER +LEADER_MARGIN))
					{
					if (repeat_delay)
						{
						eject_flag_cnt = 3;						
						// Delay before sendnig the first repeat
						repeat_delay--;
						}
					else
						{ // repeat last ir_code
						if (valid_repeat)
							{
							if(last_ir_code == IRKC_SETUP)
								{
								dac_key_flag = 1;
								valid_repeat = 0;
								Send_Event( IE_UI_REMOTE_INPUT);
								}
							#ifndef AVC500_FUTE
							else if((last_ir_code == IRKC_EJECT2) || (last_ir_code == IRKC_EJECT))
								{
								Close_flag_set();
								Send_Event( IE_UI_REMOTE_INPUT);
								valid_repeat = 0;
								}
							#endif
							else
								{
								ir_code=last_ir_code;
								Send_Event( IE_UI_REMOTE_INPUT);
								if((ir_code == IRKC_SEARCH_NEXT) || (ir_code == IRKC_SEARCH_PREV)
									|| (ir_code == IRKC_SEARCH_NEXT2) || (ir_code == IRKC_SEARCH_PREV2)
								#ifdef BLACK_VOLTAGE
								|| (ir_code == IRKC_BLACK_SCREEN)
								#endif
								)
								valid_repeat = 0;
								}
							}
				}
				IrState = IR_HEADER;
			}
			else
				IrError = 1;
			break;

		case IR_CUSTOM:
			IrData <<= 1;
			if ((width >= DATA_1 - IR_MARGIN ) && (width <= DATA_1 + IR_MARGIN))
				IrData |= 1;
			else if ((width >= DATA_0 - IR_MARGIN) && (width <= DATA_0 + IR_MARGIN))
					;
			else
				IrError = 1;

			IrDataBitCnt ++;

			if (IrDataBitCnt == 16)  {
				if((IrData != g_ir_system_code) &&
							(IrData != g_ir_system_code2))
				IrError = 1;
				else
				custom_code = IrData ;
			} else if (IrDataBitCnt == 32) {
					{

					ir_code = (IrData >> 8) & 0xff;
					last_ir_code=ir_code;
					if(custom_code ==g_ir_system_code)
					{
						switch(ir_code)
						{
							case IRKC_LEFT:
							case IRKC_RIGHT:						
							case IRKC_UP:
							case IRKC_DOWN:										
								valid_repeat = 1;
								repeat_delay=REPEAT_DELAY;
								break;
							case IRKC_FASTR:
							case IRKC_FASTF:	
								if((AV_ID == FM_ID) || (AV_ID == TV_ID))
									{
									if(ir_code == IRKC_FASTR)
										last_ir_code = IRKC_SEARCH_PREV;
									else if(ir_code == IRKC_FASTF)
										last_ir_code = IRKC_SEARCH_NEXT;									
									valid_repeat = 1;
									repeat_delay=REPEAT_DELAY;
									}
								else
									valid_repeat = 0;
								break;
							case IRKC_SETUP:
								valid_repeat = 1;
								repeat_delay=4 * REPEAT_DELAY;
								break;
							#ifndef AVC500_FUTE
							case IRKC_EJECT:	
								last_ir_code = IRKC_EJECT;
								valid_repeat = 1;
								repeat_delay=REPEAT_DELAY;
								Require_flag_set();
								eject_flag_cnt = 3;
								break;			
							#endif	
							default:
								valid_repeat=0;
								break;
						}
					}
					else if(custom_code == g_ir_system_code2)
					{
						switch(ir_code)
						{
							case IRKC_LEFT2:
							case IRKC_RIGHT2:							
							case IRKC_UP2:
							case IRKC_DOWN2:										
								valid_repeat = 1;
								repeat_delay=REPEAT_DELAY;
								break;
							#ifndef AVC500_FUTE
							case IRKC_EJECT2:	
								last_ir_code = IRKC_EJECT2;
								valid_repeat = 1;
								repeat_delay=REPEAT_DELAY;
								Require_flag_set();	
								eject_flag_cnt = 3;								
								break;			
							#endif	
							#ifdef BLACK_VOLTAGE
							case IRKC_TIME2:	
								last_ir_code = IRKC_BLACK_SCREEN;
								valid_repeat = 1;
								repeat_delay=REPEAT_DELAY;								
								break;
							#endif
							default:
								valid_repeat=0;
								break;
						}
					}
					Send_Event(IE_UI_REMOTE_INPUT);
					}
				IrState = IR_IDLE;
			}

			break;

	}

	if (IrError)
		{
		valid_repeat = 0;
		IrState = IR_IDLE;
		}
}

void IR_interrupt_server() interrupt 0
{
		Disable_TIME1;
		IR_decode();
		Clear_TIME1;
		Enable_TIME1;
}




?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产激情av| 久久青草国产手机看片福利盒子 | 岛国av在线一区| 欧美日韩一区视频| 欧美国产欧美综合| 奇米精品一区二区三区四区| 99精品偷自拍| 久久久久国产精品人| 亚洲成人午夜电影| www.久久久久久久久| 久久理论电影网| 图片区小说区区亚洲影院| 91免费视频大全| 国产人成一区二区三区影院| 日本午夜精品一区二区三区电影| 色综合久久中文字幕| 国产精品污网站| 国产精品一二一区| 欧美mv日韩mv国产| 青青草国产成人99久久| 欧美日韩三级视频| 亚洲综合色成人| 91一区一区三区| 中文字幕免费观看一区| 国产精品一级在线| 久久夜色精品一区| 久久福利视频一区二区| 欧美一级片在线| 日韩激情av在线| 欧美人伦禁忌dvd放荡欲情| 一个色妞综合视频在线观看| 91麻豆国产香蕉久久精品| 中文在线资源观看网站视频免费不卡| 国内成人免费视频| 精品国产人成亚洲区| 蜜桃一区二区三区四区| 欧美精品日日鲁夜夜添| 亚洲成av人**亚洲成av**| 欧美中文字幕久久| 一区二区三区不卡视频 | 久久99国产精品尤物| 91精品在线免费| 青草av.久久免费一区| 7777精品伊人久久久大香线蕉超级流畅| 亚洲国产美女搞黄色| 欧美日韩亚洲丝袜制服| 亚洲国产一区二区视频| 欧美日韩一区三区四区| 香港成人在线视频| 69久久夜色精品国产69蝌蚪网| 午夜精品免费在线观看| 欧美福利视频一区| 蜜桃精品视频在线观看| 欧美xxxx在线观看| 国产精品一区二区91| 国产日产亚洲精品系列| 成人激情视频网站| 亚洲色图第一区| 在线观看日韩国产| 五月天丁香久久| 日韩亚洲欧美高清| 极品少妇一区二区| 欧美韩国日本一区| 99精品在线免费| 亚洲国产精品尤物yw在线观看| 911国产精品| 国产尤物一区二区| 国产精品美女一区二区| 日本高清免费不卡视频| 亚洲成a人v欧美综合天堂| 日韩欧美一区电影| 国产suv精品一区二区883| 国产精品久久久久久久久果冻传媒 | 亚洲国产va精品久久久不卡综合 | 99精品国产热久久91蜜凸| 亚洲综合视频网| 日韩精品资源二区在线| 国产大陆a不卡| 亚洲视频在线一区二区| 欧美日韩小视频| 久久91精品久久久久久秒播| 欧美激情一区二区三区四区| 色偷偷久久人人79超碰人人澡| 日韩专区欧美专区| 久久九九国产精品| 欧美优质美女网站| 美女视频一区二区| 国产精品视频一区二区三区不卡| 在线精品亚洲一区二区不卡| 免费成人结看片| 中文字幕日韩欧美一区二区三区| 欧美日韩情趣电影| 国产精品自拍毛片| 亚洲一区av在线| 久久久不卡影院| 欧美在线影院一区二区| 久久疯狂做爰流白浆xx| 亚洲色图第一区| 亚洲精品一区二区三区蜜桃下载| 99精品视频在线观看| 日本免费在线视频不卡一不卡二| 欧美激情一区在线| 欧美人牲a欧美精品| 国产91在线观看| 石原莉奈在线亚洲三区| 国产精品欧美综合在线| 在线播放国产精品二区一二区四区| 国产成人免费高清| 日日摸夜夜添夜夜添国产精品| 国产精品日日摸夜夜摸av| 欧美精品v国产精品v日韩精品 | 国内外精品视频| 亚洲免费av观看| 久久影院视频免费| 欧美人伦禁忌dvd放荡欲情| 成人av在线看| 精品中文字幕一区二区小辣椒| 一区二区高清免费观看影视大全| 久久婷婷一区二区三区| 欧美日韩情趣电影| 99久久精品免费看| 国产精品夜夜爽| 美女高潮久久久| 亚洲国产日日夜夜| 国产精品黄色在线观看| 精品成人免费观看| 欧美喷水一区二区| 在线精品视频一区二区| 成人av电影在线网| 国产一区二区h| 人人精品人人爱| 亚洲福利一区二区| 夜夜精品视频一区二区 | 欧美岛国在线观看| 欧美男女性生活在线直播观看| 色婷婷一区二区三区四区| 粉嫩蜜臀av国产精品网站| 国产最新精品免费| 免费成人在线网站| 日韩av不卡一区二区| 亚洲国产精品一区二区尤物区| 日韩美女精品在线| 中文字幕第一区二区| 久久精品夜色噜噜亚洲aⅴ| 日韩精品专区在线影院观看| 欧美精品aⅴ在线视频| 欧美中文字幕一区| 91国偷自产一区二区开放时间| 99久久er热在这里只有精品66| 岛国精品在线播放| 成人av在线看| 成年人午夜久久久| 成人高清av在线| av激情亚洲男人天堂| 不卡av电影在线播放| 国产成人av网站| 成人美女视频在线观看18| 国产成人免费在线| 国产宾馆实践打屁股91| 成人va在线观看| 91在线免费播放| 色狠狠综合天天综合综合| 色偷偷久久人人79超碰人人澡| 日本精品免费观看高清观看| 在线精品视频一区二区三四 | 国产福利一区二区三区视频 | 亚洲一级二级在线| 午夜电影网一区| 日本在线观看不卡视频| 蜜桃av噜噜一区| 国内精品久久久久影院色| 懂色av噜噜一区二区三区av| 波多野结衣一区二区三区 | 国产精品18久久久久久久久久久久 | 一区二区三区免费| 欧美一级二级三级蜜桃| 欧美日韩精品一区二区在线播放| 91久久一区二区| 99久久精品情趣| 91久久精品一区二区| 91视频91自| 日本久久一区二区| 在线视频综合导航| 91首页免费视频| 色婷婷综合久久久中文一区二区 | 精品福利一二区| 久久久久久电影| 精品福利一区二区三区免费视频| 欧美色成人综合| 欧美亚洲自拍偷拍| 欧美日韩免费电影| 欧美高清hd18日本| 欧美精品一区二区高清在线观看 | 美国毛片一区二区三区| 国产精一品亚洲二区在线视频| 成人性生交大片免费看视频在线 | av资源站一区| 色综合久久久久网| 91精彩视频在线观看| 91高清在线观看|