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

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

?? inter.c

?? 一款車載DVD的車機源程序(正在生成中的哦)
?? C
?? 第 1 頁 / 共 2 頁
字號:
/***************************************************************************
Project  :  RDS Car Radio System
Compiler :  ST7 HiCross C (HiWARE)
Module   :  inter.c
Version  :  V 1.0
Created  :  Feb 20, 1997
Author   :  C. Baek / ST-Korea
Description
         -  Interrupt Routine of RDS Car Radio System.  
            Total 14 interrupts including RESET.
***************************************************************************/
#include "inter.h"
#include "libr.h"
#include "IOport.h"
#include "St72321.h"
#include "System_operation.h"
#include "Touch.h"
#include "Sys_config.h"
#include "CDC.h"
#include "TV_tuner.h"
#include "Menu.h"

//This are use for receive the ir
static unsigned char Previous_H;
static unsigned char Store_time_H;
static unsigned char Code_cnt1;
static unsigned char Code_cnt2;
static unsigned char Code_cont = 0;
static unsigned char IR_Code_buff[4];
unsigned char IR_Code_number;
static unsigned char Receive_ir_flag;
static unsigned char IR_delay_110ms = 11;
static unsigned char IR_low_level_time= 0;
//Use for the timer1
static unsigned char TmpOcl;
static unsigned char TmpOch;
static unsigned char Test_flag;
//Use for send command to dvd player
static unsigned char Send_dvd_command_flag = 0;
static unsigned char Time_cnt ;	/*Counter the time,such as 9ms/4.5ms and so on*/
static unsigned char Send_command_byte_cnt = 0;	/*Counter the bytes ,total are 4 bytes*/
static unsigned char Send_command_bit_cnt = 0;	/*Counter the bits,one byte is 8 bits*/
//Use for the CDC
unsigned int  CdcDelay;
unsigned char CtxBuffer[4];
unsigned char CdcDispDelay;
unsigned char CtxState;
unsigned char ctbit;
unsigned char ctbyte;
unsigned int  CdcTout;
unsigned char CrxBuffer[8];
unsigned int  Cd1Delay;
unsigned char Cd1Tout;
unsigned char ctxcntr; 
unsigned char Crxbits;
unsigned char CrxTimer; //test   
static unsigned char CtxTimer;  
static unsigned char crbyte;
static unsigned char crxcntr; 
static unsigned char crbit;
static unsigned char CdcChkSum; 
static unsigned char itmp;
//------------OSD delay--------------
unsigned int Clear_OSD_delay=500;	//Delay s
//These below are the remote receive's program
static void IR_receiver(void);
static void Low_9ms(void);
static void High_45ms_or_25ms(void);
static void Low_06ms(void);
static void High_15ms_or_06ms(void);
static void Last_low_06ms(void);
static void Back_low_06ms(void);
static void Action_Error(void);
static void Back_high_25ms(void);
static void IR_store_code(void);
void Check_long_IR_key(void);
//This below is the send command to the dvd player program
static Send_command_to_dvd_player(void);

static void CdcTimer (void);
static void CdcTimer1 (void);


/*--------------------------------------------------------------------------
Routine : INT_PortB0123
Input   : PinCDP_c2
Output  :
Description 
        -  
--------------------------------------------------------------------------*/ 
#pragma TRAP_PROC SAVE_REGS
void INT_PortB0123 (void)
{ 
	unsigned char i;
	unsigned char Cunt_time=0;
	if(DVD_SW_low)	//Disc in interrupt
		{
		for(i=0;i<10;i++)
			{
			if(DVD_SW_low)
				Cunt_time++;
			WAIT_100us();
			}
		if(Cunt_time < 5)
			return;
		if(System_mode == DVD_mode)
			{
			SetBit(System_flag3,Disc_in_detect_close_panel_flag);	//When the disc into the rom then will close the panel sometime
			return;
			}
		if(Disc_is_in_rom)	//Had one disc in the rom
			return;
		Hardware_enable_mute_system;
		Hardware_enable_mute_BACK_CON;
		SetBit(System_flag2,Disc_in_flag);
		SetBit(System_flag3,Disc_in_detect_close_panel_flag);	//When the disc into the rom then will close the panel sometime
		Open_DVD_5v_power;
		return;
		}
	
}
/*--------------------------------------------------------------------------
Routine : INT_Timer1
Input   : 
Output  :
Description 
        - General Use of Timer, Transmit Routine of CD Changer
          & Receiving Routine of CD Player
--------------------------------------------------------------------------*/ 
#pragma TRAP_PROC SAVE_REGS
void INT_Timer1 (void)
{
/*-----------Output Compare 1-----------*/
	if (BitVal(TIM1_OCF1))
  		{ /* every 10m normal or 100 msec sleep */ 
  		asm
        	{
           	ld      a,TIM1_OC1L;         // 1 CLK = (1 / 8.664) * 2 * 8 
           	add     a,#0x88              //       = 2000 / 1083 usec    
           	ld      TmpOcl,a             // 10 msec = 5 * 1083 CLKs     
           	ld      a,TIM1_OC1H          //         = 5415 (0x1527 hex) 
           	adc     a,#0x26            // OC = 0x1527 
           	ld      TIM1_OC1H,a			//10ms = 5000 CLKS (0x1388 hex)
           	ld      a,TmpOcl				//
           	ld      TIM1_OC1L,a
        	} 
  		
  		//Check ACC
  		if(ValBit(PF_DR,ACC_ID))	/*Sleep mode*/
			{
			ClrBit(System_flag,ACC_on_flag);
			Hardware_enable_mute_system;
			Hardware_enable_mute_BACK_CON;
  			}
  		
		//Check out the disc delay
  		if(Out_disc_delay != 0)
  			Out_disc_delay--;
  		
  		//Check need to close the DVD power
  		if(ValBit(System_flag4,Close_dvd_power_flag))
  			{
  			if(DVD_close_power_delay != 0)
  				DVD_close_power_delay--;
  			else
  				{
  				Close_DVD_5v_power;
  				ClrBit(System_flag4,Close_dvd_power_flag);
  				}
  			}
  		
  		//Check need to default light current item or not
  		if(ValBit(System_flag2,Close_high_light_item_flag))
  			{
  			if(Item_light_time != 0)
  				Item_light_time--;
  			else
  				{
  				ClrBit(System_flag2,Close_high_light_item_flag);
  				SetBit(System_flag2,Default_light_item_flag);	//Set this flag then in the main program to default light current item's picture
  				}
  			}
  		
  		//Check the volume key's delay
  		if(Volume_key_delay !=0)
  			Volume_key_delay--;
  		//Check detect key
  		if(Key_delay != 0) 
  			Key_delay--;
  		
  		//Check the CDC delay
  		if (CdcTout != 0)     CdcTout--;
  		if (Cd1Delay != 0)    Cd1Delay--; 
  		if (CdcDelay != 0)    CdcDelay--;
  		
  		//Chcek the panel delay
  		if(ValBit(System_flag2,stop_open_close_panel_flag))
  			{
  			if(Open_close_panel_delay != 0)	
  				Open_close_panel_delay--;
  			else
  				{
  				Close_motor_power;	//Close the motor power
				ClrBit(System_flag2,stop_open_close_panel_flag);
  				}
  			}
  		
  		//Chcek when have video signal 5 minute then clear the OSD	
  		if(Clear_OSD_delay != 0)
  			Clear_OSD_delay--;
  		
  		//Check disc in close the panel sometime 
  		if(ValBit(System_flag4,Disc_in_stop_close_panel_flag))
  			{
  			if(Disc_in_close_panel_delay != 0)
  				Disc_in_close_panel_delay--;
  			else
  				{  
  				Close_motor_power;
  				ClrBit(System_flag4,Disc_in_stop_close_panel_flag);
  				}
  			}
  		//Check counter the ir's 110ms
  		if(IR_delay_110ms != 0)
  			IR_delay_110ms--;
  		//Check protect motor 5s
  		if(Protect_motor_delay != 0)
  			Protect_motor_delay--;
		}
/*-----------Output Compare 2-----------*/
	if (BitVal(TIM1_OCF2))
  		{	/* every 500/600 usec */
  		#ifdef CDC_timer_500us
  		CdcTimer();	 /*every 500 usec*/
  		#else
  		CdcTimer1();	/*every 600 usec*/
  		#endif
  		
  		//Check need or not to send command to dvd player
  		if(ValBit(System_flag,Send_command_to_dvd_flag))
  			Send_command_to_dvd_player();
  		
  		//Check need to disable the bell function
  		if(Bell_cnt != 0)
  			Bell_cnt--;
  		else
  			Disable_bell_function;

  		//Test the timer
  		if(TIM2_CNT == 0xff)
  			TIM2_CNT = 0x00;
  		//Check the long ir key's low level time
  		if(ValBit(System_flag4,Check_long_IR_flag))
  			{
  			if(!ValBit(PF_DR,IR))
  				IR_low_level_time++;
  			}
  			
  		}
 	else
 		{
        asm  ld   a,TIM1_OC2L;     /* just clear the flag, ld means clear*/
     	}  
	
 }

/*--------------------------------------------------------------------------
Routine : INT_Timer2
Input   : 
Output  :
Description 
        - For What ???
--------------------------------------------------------------------------*/ 
#pragma TRAP_PROC SAVE_REGS
void INT_Timer2 (void)
{ 
}
/*--------------------------------------------------------------------------
Routine : INT_PortB4567
Input   : 
Output  :
Description 
        - Receiving Routine of SIN-HEUNG/SANYO CD Changer
        - Check Sum (higher nibble of CrxBuffer[7]
          = all higher nibbles except CrxBuffer[7] +
            all lower nibbles of CrxBuffer[0] to [7]
--------------------------------------------------------------------------*/ 
#pragma TRAP_PROC SAVE_REGS
void INT_PortB4567 (void)
{
	#if 1
	//---------CDC interrupt-------------
	if(!ValBit(PB_DR,CDC_BUS))
		{
		if (ValBit(CdcFlag,CdcTx))  return;	//In send data mode then return
  		if (ValBit(CdcFlag,RdyCrx))  return;	//If finish receive the data then return   
  		if (!ValBit(CdcFlag,CdcRx) || (Cd1Tout == 0))
     			{	//First interrupt to receive the data,so you must clear all register and the flags
        		crbit = 0;
        		crbyte = 0; 
        		crxcntr = 0;
        		Crxbits = 0xFF;
        		SetBit(CdcFlag,CdcRx); 
			}     // florent
     		SetBit(CdcFlag1,SmpReq);           /* request to read a bit */
     		Cd1Tout = 30;                      /* 15 ms of timeout */
     		CrxTimer = 2;   // Florent - avoid bug display (2 sec. jump)
		}
	#endif
}

#pragma TRAP_PROC SAVE_REGS
void INT_Sw_rt (void)
{
}

#pragma TRAP_PROC SAVE_REGS
void INT_TLI (void)
{
}


#pragma TRAP_PROC SAVE_REGS
void INT_PortA0123 (void)
{
}

#pragma TRAP_PROC SAVE_REGS
void INT_Spi(void)
{
}
//#pragma TRAP_PROC SAVE_REGS
//void INT_Spi2(void)
//{
//}
#pragma TRAP_PROC SAVE_REGS
void INT_Sci(void)
{
}



#pragma TRAP_PROC SAVE_REGS
void INT_PortF012(void)                                                             
{ 
	/*Remote interrupt routine*/
 	if(TIM2_CNT < Previous_H)
		Store_time_H = TIM2_CNT + (0xff - Previous_H);
	else
		Store_time_H = TIM2_CNT - Previous_H;
	Previous_H = TIM2_CNT;
	IR_receiver();
}

#pragma TRAP_PROC SAVE_REGS
void INT_Eeprom(void)
{
} 

/*-----------------------------------------------------------------------------
ROUTINE NAME : dummy_rt
INPUT/OUTPUT : None

DESCRIPTION  : Empty Interrupt Service Routine

COMMENTS     : all the non-connected interrupt vectors are connected to this empty function
-----------------------------------------------------------------------------*/ 
#pragma TRAP_PROC SAVE_REGS
void dummy_rt(void)
{
}
#pragma TRAP_PROC SAVE_REGS
void INT_MCC(void)
{
	ClrBit(MCCSR,0);
	ClrBit(MCCSR,1);
}
#pragma TRAP_PROC SAVE_REGS
void INT_AVD(void)
{
}
#pragma TRAP_PROC SAVE_REGS
void INT_I2C (void)
{
}
#pragma TRAP_PROC SAVE_REGS
void INT_PWMART(void)
{
}

/*******************************************************************
Function:These below are the remote interrupt routinue
********************************************************************/
static void IR_receiver(void)
{
	if(!ValBit(Receive_ir_flag,Low_9ms_flag))
	{
		Low_9ms();
		return;
	}
	if(!ValBit(Receive_ir_flag,High_45ms_25ms_flag))
	{
		High_45ms_or_25ms();
		return;
	}
	if(!ValBit(Receive_ir_flag,Low_06ms_flag))
	{
		Low_06ms();
		return;
	}
	if(!ValBit(Receive_ir_flag,High_15ms_06ms_flag))
	{
		High_15ms_or_06ms();
		return;
	}
	if(!ValBit(Receive_ir_flag,Last_low_06ms_flag))
	{
		Last_low_06ms();
		return;
	}
	if(!ValBit(Receive_ir_flag,Back_low_06ms_flag))
	{
		Back_low_06ms();
		return;
	}
}
//-----------------------------------------------
static void Low_9ms(void)
{
	if(Store_time_H > 0x25*2 || Store_time_H < 0x23*2)
		{
		Action_Error();
		return;
		}
	else
		{
		SetBit(Receive_ir_flag,Low_9ms_flag);
		ClrBit(Receive_ir_flag,High_45ms_25ms_flag);
		ClrBit(Receive_ir_flag,Low_06ms_flag);
		ClrBit(Receive_ir_flag,High_15ms_06ms_flag);
		ClrBit(Receive_ir_flag,Last_low_06ms_flag);
		ClrBit(Receive_ir_flag,Back_low_06ms_flag);
		}
}
//-----------------------------------
static void High_45ms_or_25ms(void)
{
	if(Store_time_H > 0x13*2)
		{
		Action_Error();
		Code_cont = 0;
		return;
		}
	if(Store_time_H < 0x0E*2)	/*3.5ms*/
		Back_high_25ms();
	else
		{	/*High 4.5ms*/	//New ir signal
		IR_Code_buff[0] = 0xff;
		IR_Code_buff[1] = 0xff;
		IR_Code_buff[2] = 0xff;
		IR_Code_buff[3] = 0xff;
		IR_Code_number = 0xff;
		Code_cont = 0;
		ClrBit(System_flag4,Check_long_IR_flag);
		SetBit(Receive_ir_flag,High_45ms_25ms_flag);
		SetBit(Receive_ir_flag,Low_9ms_flag);
		ClrBit(Receive_ir_flag,Low_06ms_flag);
		ClrBit(Receive_ir_flag,High_15ms_06ms_flag);
		ClrBit(Receive_ir_flag,Last_low_06ms_flag);
		ClrBit(Receive_ir_flag,Back_low_06ms_flag);
		}
}	
//-----------------------------------
static void Low_06ms(void)
{
	if(Store_time_H > 0x04*2 || Store_time_H < 0x01*2)
		{
		Action_Error();
		Code_cont = 0;
		return;
		}
	SetBit(Receive_ir_flag,Low_06ms_flag);
	SetBit(Receive_ir_flag,High_45ms_25ms_flag);
	SetBit(Receive_ir_flag,Low_9ms_flag);
	ClrBit(Receive_ir_flag,High_15ms_06ms_flag);
	ClrBit(Receive_ir_flag,Last_low_06ms_flag);
	ClrBit(Receive_ir_flag,Back_low_06ms_flag);
}
//-----------------------------------
static void High_15ms_or_06ms(void)
{
	if(Store_time_H > 0x09*2 || Store_time_H < 0x01*2)
		{
		Action_Error();
		Code_cont = 0;
		return;
		}
	else
		{
		ClrBit(Receive_ir_flag,Low_06ms_flag);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
乱中年女人伦av一区二区| 91精品免费在线观看| 欧美性欧美巨大黑白大战| 日韩精品一区二区在线观看| 亚洲私人黄色宅男| 麻豆免费精品视频| 欧美在线综合视频| 欧美激情中文字幕| 激情成人综合网| 91精品婷婷国产综合久久性色 | 欧美不卡一区二区三区四区| 亚洲天堂免费看| 国产v综合v亚洲欧| 久久夜色精品国产噜噜av| 午夜精品久久久久久久蜜桃app| 不卡视频一二三| 国产日产欧美一区二区三区| 久久精品国产精品亚洲精品| 欧美日韩精品三区| 亚洲欧美视频在线观看| 国产精品一卡二卡在线观看| 欧美成人在线直播| 美女精品自拍一二三四| 56国语精品自产拍在线观看| 一区二区三区中文字幕在线观看| 97久久精品人人做人人爽| 日本一区二区三级电影在线观看| 国产米奇在线777精品观看| 欧美一卡二卡三卡四卡| 日韩精品1区2区3区| 欧美浪妇xxxx高跟鞋交| 午夜电影一区二区| 欧美美女黄视频| 午夜精品久久久久久久| 欧美一级xxx| 激情五月婷婷综合| 亚洲精品一区二区精华| 国产麻豆精品一区二区| 久久免费精品国产久精品久久久久| 久久99精品国产.久久久久| 精品理论电影在线观看 | 一区二区三区成人在线视频| 欧洲亚洲国产日韩| 亚洲精品欧美综合四区| 欧美性受极品xxxx喷水| 亚洲大型综合色站| 日韩限制级电影在线观看| 紧缚捆绑精品一区二区| 欧美国产成人精品| 色视频欧美一区二区三区| 亚洲一区二区三区四区在线观看 | 99久久精品久久久久久清纯| 一区二区三区视频在线观看| 欧美日高清视频| 美国毛片一区二区三区| 国产视频不卡一区| 一本久道久久综合中文字幕| 三级不卡在线观看| 日本一区二区综合亚洲| 欧美在线视频全部完| 麻豆一区二区99久久久久| 国产欧美一区二区精品久导航| 91免费看视频| 日韩影院在线观看| 国产欧美一区二区在线观看| 91成人在线观看喷潮| 久久成人久久爱| 1区2区3区精品视频| 91.xcao| 高清av一区二区| 午夜激情久久久| 国产精品传媒在线| 欧美一级片在线看| av在线不卡观看免费观看| 婷婷综合另类小说色区| 欧美激情资源网| 日韩小视频在线观看专区| 91丨porny丨蝌蚪视频| 久久福利资源站| 亚洲国产成人91porn| 中文字幕免费不卡在线| 91精品国模一区二区三区| av亚洲精华国产精华| 免费一级欧美片在线观看| 一区二区三区免费在线观看| 久久精品一区八戒影视| 欧美日本一区二区在线观看| 成人小视频在线| 韩国在线一区二区| 日韩av电影一区| 一区二区视频在线| 日韩av一二三| 一区二区在线观看免费| 中文字幕不卡三区| 精品国产123| 日韩精品一区二区三区中文不卡| 色婷婷久久综合| 99久久99久久综合| 高潮精品一区videoshd| 国产美女娇喘av呻吟久久| 午夜精品一区二区三区免费视频| 亚洲欧美激情在线| 亚洲欧洲一区二区在线播放| 久久精品视频在线看| 欧美mv和日韩mv的网站| 欧美一区二区三区婷婷月色| 欧美色网站导航| 91福利区一区二区三区| 色天天综合色天天久久| 一本大道久久精品懂色aⅴ | 夜夜夜精品看看| 亚洲天堂成人在线观看| 自拍av一区二区三区| 国产精品久久久久久久久免费相片| 久久免费电影网| 欧美激情一区二区三区| 欧美激情一二三区| 国产精品视频第一区| 中文字幕一区二区三区不卡在线| 日韩一区中文字幕| 亚洲综合视频网| 亚洲不卡在线观看| 爽好久久久欧美精品| 久久精品国产精品青草| 国产精品亚洲视频| 97久久超碰国产精品电影| 欧日韩精品视频| 欧美日韩国产小视频| 日韩一区二区免费视频| 久久午夜国产精品| 国产精品久久久久久久久动漫 | 久久99久久久久久久久久久| 日韩精彩视频在线观看| 玖玖九九国产精品| 国产福利一区二区三区视频| 成人国产亚洲欧美成人综合网| 色综合久久中文字幕| 欧美视频一区二| 精品久久久久久久久久久久久久久久久 | 日韩黄色在线观看| 美女在线视频一区| 粉嫩av一区二区三区粉嫩| 91免费看视频| 日韩欧美在线影院| 国产精品高清亚洲| 午夜日韩在线电影| 国产超碰在线一区| 欧美日韩精品免费| 国产欧美日韩在线视频| 亚洲综合精品自拍| 国产丶欧美丶日本不卡视频| 一本色道亚洲精品aⅴ| 精品少妇一区二区三区在线播放| ㊣最新国产の精品bt伙计久久| 天堂久久一区二区三区| 成人妖精视频yjsp地址| 欧美一级专区免费大片| 亚洲欧洲av在线| 激情五月婷婷综合| 欧美视频精品在线| 国产精品热久久久久夜色精品三区| 午夜精品福利久久久| 国产iv一区二区三区| 欧美美女直播网站| 亚洲天堂精品在线观看| 国产精品原创巨作av| 91精品国产综合久久久蜜臀图片 | 成人app软件下载大全免费| 7777精品伊人久久久大香线蕉完整版 | 欧美视频日韩视频| 国产精品久久久久久久久快鸭| 美国欧美日韩国产在线播放| 欧美这里有精品| 中文字幕一区二区三区乱码在线| 精品制服美女丁香| 欧美日韩mp4| 一区二区三区四区视频精品免费 | 欧美日韩国产高清一区二区三区| 日本一区二区三级电影在线观看| 日本中文字幕一区| 欧美日韩亚洲高清一区二区| 国产精品久久久久aaaa樱花| 韩国在线一区二区| 欧美大片在线观看一区二区| 婷婷成人激情在线网| 91久久精品一区二区三| 中文字幕亚洲成人| 国产iv一区二区三区| 久久众筹精品私拍模特| 青青草国产成人99久久| 欧美三级中文字| 一区二区视频在线| 99精品视频在线播放观看| 国产日韩欧美a| 国产成都精品91一区二区三| 国产嫩草影院久久久久| 国产精品1区二区.| 欧美激情在线一区二区三区| 国产精品一区二区在线观看不卡| 2021久久国产精品不只是精品|