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

📄 handler_dma.c

📁 日本IRON os 在汽车电子中的应用 高度机密
💻 C
📖 第 1 页 / 共 2 页
字号:
/********************************************************************************/
/*!
  @file		handler_dma.c
  @brief	妱崬傒僴儞僪儔乕張棟
  @version	$Revision: 2.00 $
  @date		2007/XX/XX
  @author	Matsushita Electronics Co.,Ltd.
*/
/********************************************************************************/
#include	<stdio.h>
#include	<stdlib.h>

#include	<itron.h>
#include	<kernel.h>
#include	<kernel_id.h>

#include	"..\gerda_dd\include\gerda_dd.h"
#include	"..\gerda_dd\include\gerda_reg.h"
#include	"..\texture\texdata.h"

#include	"..\gerda_dd\include\am32.h"

#include	"systype.h"
#include	"sr103se60pub.h"
#include	"option.h"
#include	"if_cmd.h"
#include	"if_mxr.h"
#include	"if_txtid.h"
#include	"parameter.h"
#include	"dd_param.h"
#include	"dspctrl.h"

#if 1	/*	@018s6[08/03/09]	*/
#if (SETTING_TOOL_MODE==SETTING_TOOL_ON)
#include	"tool_int.h"
#endif
#endif	/*	@018s6[08/03/09]	*/

/********************************************************************/
/*	儅僋儘掕媊														*/
/********************************************************************/
#define		touch(x)	((x) = 0)			/* WARNING 懳嶔 						*/

/********************************************************************/
/*	娭悢愰尵														*/
/********************************************************************/
void v_ITR_GrpReserve(void);				/* 枹張棟								*/
void v_ITR_Grp0Irq(void);					/* Group0  : 僲儞儅僗僇僽儖妱崬傒梫場	*/
void v_ITR_Grp11Irq(void);					/* Group11 : SIF CH0庴怣妱崬傒梫場		*/
void v_ITR_Grp12Irq(void);					/* Group12 : SIF CH0憲怣妱崬傒梫場		*/
void v_ITR_Grp13Irq(void);					/* Group13 : DMA0 妱崬傒梫場			*/
void v_ITR_Grp14Irq(void);					/* Group14 : DMA1 妱崬傒梫場			*/
void v_ITR_GrpP02(void);
/********************************************************************/
/*	奜晹娭悢愰尵													*/
/********************************************************************/
extern	void vIRQ_Serial0Snd(void);			/* 僔儕傾儖庴怣妱崬傒張棟				*/
extern	void vIRQ_Serial0Rcv(void);			/* 僔儕傾儖憲怣妱崬傒張棟				*/
extern	void vIRQ_DMA0( void );				/* DMA0 妱崬傒張棟						*/
extern	void vIRQ_DMA1( void );				/* DMA1 妱崬傒張棟						*/
extern void TSC_Reaed(void);

/********************************************************************/
/*	曄悢愰尵														*/
/********************************************************************/
ULONG	int_nest_level;						/* 妱崬傒僱僗僩儗儀儖					*/
volatile ULONG TOS_save_int_level;			/* PSW儗僕僗僞戅旔椞堟					*/
extern T_MSG_DATA	rcv_cmd;
extern USHORT x_position,y_position;
USHORT Y_Pos=0,X_Pos=0, averageX=0,averageY=0;
USHORT KEY_NEMBER=0,CONTER=0;
/********************************************************************/
/*	儅僋儘掕悢愰尵													*/
/********************************************************************/
#define 	MAX_GROUP_NUM 31				/* 妱崬傒僌儖乕僾悢						*/


/********************************************************************/
/*	掕悢愰尵														*/
/********************************************************************/



/************************************************************************/
/*!
  @fn			void begin_critical(void)
  @brief		慡妱傝崬傒嬛巭娭悢 仸昁偢end_critical()偲儁傾偵偰巊梡偺偙偲
  @param		側偟
  @return		側偟
  @date			2007/xx/xx
*/
/************************************************************************/
void begin_critical(void)
{
	if ( int_nest_level == 0) {
		asm("mov	PSW, D0");
		asm("mov	D0, (_TOS_save_int_level)");
		asm("and	0xf7ff,psw");
		asm("nop	");			/* waiting two or more cycles until effective	*/
		asm("nop	");			/* waiting two or more cycles until effective	*/
	}
	int_nest_level++;
}


/************************************************************************/
/*!
  @fn			void end_critical(void)
  @brief		慡妱傝崬傒嫋壜娭悢 仸昁偢begin_critical()偲儁傾偵偰巊梡偺偙偲
  @param		側偟
  @return		側偟
  @date			2007/xx/xx
*/
/************************************************************************/
void end_critical(void)
{
	if ( int_nest_level == 0) {
		return;
	}else if(--int_nest_level == 0){
		asm("mov	(_TOS_save_int_level), D0");
		asm("mov	D0, PSW");
		asm("nop	");			/* waiting two or more cycles until effective	*/
		asm("nop	");			/* waiting two or more cycles until effective	*/
	}
}


//ui8_t averageX,averageY;
#if (T0UCHPANEL_THOOSE==THOOSE)
USHORT GetKey(void)

{	
	USHORT temp;
           
	if(y_position>50&& y_position<3950&&x_position>150&&x_position<3900)
	{
		
			averageX = x_position;
	
			averageY = y_position;
		
	              
				temp = averageX * 15;
				temp >>= 7;
				X_Pos = temp & 0xffff;


;
				temp = averageY * 2;
				temp = temp/35;
				Y_Pos = temp & 0xffff;

				
              if((X_Pos>380)&&(X_Pos<460)&&(Y_Pos>17)&&(Y_Pos<57))
                        KEY_NEMBER=0x5d;
			  
               else  if(unMXR_score ==11 )
                    {
                      if((X_Pos>300)&&(X_Pos<380)&&(Y_Pos>53)&&(Y_Pos<87))
                         KEY_NEMBER=0x44;
			else  if((X_Pos>300)&&(X_Pos<380)&&(Y_Pos>87)&&(Y_Pos<117))
                         KEY_NEMBER=0x45;
			else  if((X_Pos>300)&&(X_Pos<380)&&(Y_Pos>117)&&(Y_Pos<159))
                         KEY_NEMBER=0x43;	
			else  if((X_Pos>300)&&(X_Pos<380)&&(Y_Pos>159)&&(Y_Pos<203))
                         KEY_NEMBER=0x48;	
	             
                      else  if((X_Pos>84)&&(X_Pos<178)&&(Y_Pos>53)&&(Y_Pos<87))
                         KEY_NEMBER=0x41;
			else  if((X_Pos>84)&&(X_Pos<178)&&(Y_Pos>87)&&(Y_Pos<117))
                         KEY_NEMBER=0x42;
			else  if((X_Pos>84)&&(X_Pos<178)&&(Y_Pos>117)&&(Y_Pos<159))
                         KEY_NEMBER=0x46;	
			else  if((X_Pos>84)&&(X_Pos<178)&&(Y_Pos>159)&&(Y_Pos<203))
                         KEY_NEMBER=0x47;
			
			
                  }

		else if(unMXR_score ==1)
			{
			if(unMXR_track==1)
                        {
                        if((X_Pos>410)&&(X_Pos<455)&&(Y_Pos>44)&&(Y_Pos<94))
                          KEY_NEMBER=0x55;
			 else   if((X_Pos>410)&&(X_Pos<455)&&(Y_Pos>94)&&(Y_Pos<134))
                          KEY_NEMBER=0x56;
			 else   if((X_Pos>410)&&(X_Pos<455)&&(Y_Pos>134)&&(Y_Pos<174))
                          KEY_NEMBER=0x57;
			 else   if((X_Pos>410)&&(X_Pos<455)&&(Y_Pos>174)&&(Y_Pos<220))
                          KEY_NEMBER=0x58;
			 else  if((X_Pos>0)&&(X_Pos<60)&&(Y_Pos>44)&&(Y_Pos<94))
                          KEY_NEMBER=0x59;
                      else  if((X_Pos>0)&&(X_Pos<60)&&(Y_Pos>94)&&(Y_Pos<134))
                          KEY_NEMBER=0x5A;
			  else  if((X_Pos>0)&&(X_Pos<60)&&(Y_Pos>134)&&(Y_Pos<174))
                          KEY_NEMBER=0x5B;
			 else  if((X_Pos>0)&&(X_Pos<60)&&(Y_Pos>174)&&(Y_Pos<220))
                          KEY_NEMBER=0x5C;
			 
			 else if((X_Pos>223)&&(X_Pos<376)&&(Y_Pos>81)&&(Y_Pos<115))
                          KEY_NEMBER=0x4A;

                        else if((X_Pos>223)&&(X_Pos<376)&&(Y_Pos>115)&&(Y_Pos<141))
                          KEY_NEMBER=0x4B;

                        else if((X_Pos>223)&&(X_Pos<376)&&(Y_Pos>141)&&(Y_Pos<190))
                          KEY_NEMBER=0x4C;
					   
                      else if((X_Pos>74)&&(X_Pos<223)&&(Y_Pos>81)&&(Y_Pos<115))
                          KEY_NEMBER=0x4D;

                        else if((X_Pos>74)&&(X_Pos<223)&&(Y_Pos>115)&&(Y_Pos<141))
                          KEY_NEMBER=0x4E;

                       else if((X_Pos>74)&&(X_Pos<223)&&(Y_Pos>141)&&(Y_Pos<190))
                          KEY_NEMBER=0x4F;
			 
			 
			
                          }
			if(unMXR_track==2)
			   {   if((X_Pos>410)&&(X_Pos<455)&&(Y_Pos>44)&&(Y_Pos<94))
                          KEY_NEMBER=0x55;
			 else   if((X_Pos>410)&&(X_Pos<455)&&(Y_Pos>94)&&(Y_Pos<134))
                          KEY_NEMBER=0x56;
			 else   if((X_Pos>410)&&(X_Pos<455)&&(Y_Pos>134)&&(Y_Pos<174))
                          KEY_NEMBER=0x57;
			 else   if((X_Pos>410)&&(X_Pos<455)&&(Y_Pos>174)&&(Y_Pos<220))
                          KEY_NEMBER=0x58;
			 else  if((X_Pos>0)&&(X_Pos<60)&&(Y_Pos>44)&&(Y_Pos<94))
                          KEY_NEMBER=0x59;
                      else  if((X_Pos>0)&&(X_Pos<60)&&(Y_Pos>94)&&(Y_Pos<134))
                          KEY_NEMBER=0x5A;
			  else  if((X_Pos>0)&&(X_Pos<60)&&(Y_Pos>134)&&(Y_Pos<174))
                          KEY_NEMBER=0x5B;
			 else  if((X_Pos>0)&&(X_Pos<60)&&(Y_Pos>174)&&(Y_Pos<220))
                          KEY_NEMBER=0x5C;

			 else  if((X_Pos>125)&&(X_Pos<374)&&(Y_Pos>72)&&(Y_Pos<102))
                          KEY_NEMBER=0x4A;
			  else  if((X_Pos>125)&&(X_Pos<374)&&(Y_Pos>102)&&(Y_Pos<125))
                          KEY_NEMBER=0x4B;
			   else  if((X_Pos>125)&&(X_Pos<374)&&(Y_Pos>125)&&(Y_Pos<152))
                          KEY_NEMBER=0x4C;
			    else  if((X_Pos>125)&&(X_Pos<374)&&(Y_Pos>152)&&(Y_Pos<177))
                          KEY_NEMBER=0x4D;
				 else  if((X_Pos>125)&&(X_Pos<374)&&(Y_Pos>177)&&(Y_Pos<203))
                          KEY_NEMBER=0x4E;
			  
                      }

		       }

			else if(unMXR_score ==2)
			{
			if(unMXR_track==100)
                        {
                        if((X_Pos>410)&&(X_Pos<455)&&(Y_Pos>44)&&(Y_Pos<94))
                          KEY_NEMBER=0x55;
			 else   if((X_Pos>410)&&(X_Pos<455)&&(Y_Pos>94)&&(Y_Pos<134))
                          KEY_NEMBER=0x56;
			 else   if((X_Pos>410)&&(X_Pos<455)&&(Y_Pos>134)&&(Y_Pos<174))
                          KEY_NEMBER=0x57;
			 else   if((X_Pos>410)&&(X_Pos<455)&&(Y_Pos>174)&&(Y_Pos<220))
                          KEY_NEMBER=0x58;
			 else  if((X_Pos>0)&&(X_Pos<60)&&(Y_Pos>44)&&(Y_Pos<94))
                          KEY_NEMBER=0x59;
                      else  if((X_Pos>0)&&(X_Pos<60)&&(Y_Pos>94)&&(Y_Pos<134))
                          KEY_NEMBER=0x5A;
			  else  if((X_Pos>0)&&(X_Pos<60)&&(Y_Pos>134)&&(Y_Pos<174))
                          KEY_NEMBER=0x5B;
			 else  if((X_Pos>0)&&(X_Pos<60)&&(Y_Pos>174)&&(Y_Pos<220))
                          KEY_NEMBER=0x5C;
			 
			  else if((X_Pos>125)&&(X_Pos<384)&&(Y_Pos>75)&&(Y_Pos<100))
                          KEY_NEMBER=0x4A;

                        else if((X_Pos>125)&&(X_Pos<384)&&(Y_Pos>100)&&(Y_Pos<130))
                          KEY_NEMBER=0x4B;

                        else if((X_Pos>125)&&(X_Pos<384)&&(Y_Pos>130)&&(Y_Pos<157))
                          KEY_NEMBER=0x4C;
					   
                        else if((X_Pos>125)&&(X_Pos<384)&&(Y_Pos>157)&&(Y_Pos<181))
                          KEY_NEMBER=0x4D;

                        else if((X_Pos>125)&&(X_Pos<384)&&(Y_Pos>181)&&(Y_Pos<205))
                          KEY_NEMBER=0x4E;

                       
			 
			 
			
                          }
			if(unMXR_track==6)
			   {  
			   if((X_Pos>294)&&(X_Pos<344)&&(Y_Pos>82)&&(Y_Pos<111))
                          KEY_NEMBER=0x41;
			 else   if((X_Pos>247)&&(X_Pos<294)&&(Y_Pos>82)&&(Y_Pos<111))
                          KEY_NEMBER=0x42;
                       else   if((X_Pos>194)&&(X_Pos<247)&&(Y_Pos>82)&&(Y_Pos<111))
                          KEY_NEMBER=0x43;
			 else if((X_Pos>294)&&(X_Pos<344)&&(Y_Pos>111)&&(Y_Pos<140))
                          KEY_NEMBER=0x44;
			 else   if((X_Pos>247)&&(X_Pos<294)&&(Y_Pos>111)&&(Y_Pos<140))
                          KEY_NEMBER=0x45;
                       else   if((X_Pos>194)&&(X_Pos<247)&&(Y_Pos>111)&&(Y_Pos<140))
                          KEY_NEMBER=0x46;
                         else if((X_Pos>294)&&(X_Pos<344)&&(Y_Pos>140)&&(Y_Pos<170))
                          KEY_NEMBER=0x47;
			 else   if((X_Pos>247)&&(X_Pos<294)&&(Y_Pos>140)&&(Y_Pos<170))
                          KEY_NEMBER=0x48;
                       else   if((X_Pos>194)&&(X_Pos<247)&&(Y_Pos>140)&&(Y_Pos<170))
                          KEY_NEMBER=0x49;
                       else if((X_Pos>294)&&(X_Pos<344)&&(Y_Pos>170)&&(Y_Pos<202))
                          KEY_NEMBER=0x62;
			 else   if((X_Pos>247)&&(X_Pos<294)&&(Y_Pos>170)&&(Y_Pos<202))
                          KEY_NEMBER=0x40;
                       else   if((X_Pos>194)&&(X_Pos<247)&&(Y_Pos>170)&&(Y_Pos<202))
                          KEY_NEMBER=0x63;

                        else   if((X_Pos>144)&&(X_Pos<194)&&(Y_Pos>82)&&(Y_Pos<130))
                          KEY_NEMBER=0x5e;
                        else   if((X_Pos>144)&&(X_Pos<194)&&(Y_Pos>130)&&(Y_Pos<163))
                          KEY_NEMBER=0x5f;
                         else   if((X_Pos>144)&&(X_Pos<194)&&(Y_Pos>163)&&(Y_Pos<202))
                          KEY_NEMBER=0x60;

			   else if((X_Pos>410)&&(X_Pos<455)&&(Y_Pos>44)&&(Y_Pos<94))
                          KEY_NEMBER=0x55;
			 else   if((X_Pos>410)&&(X_Pos<455)&&(Y_Pos>94)&&(Y_Pos<134))
                          KEY_NEMBER=0x56;
			 else   if((X_Pos>410)&&(X_Pos<455)&&(Y_Pos>134)&&(Y_Pos<174))
                          KEY_NEMBER=0x57;
			 else   if((X_Pos>410)&&(X_Pos<455)&&(Y_Pos>174)&&(Y_Pos<220))
                          KEY_NEMBER=0x58;
			 else  if((X_Pos>0)&&(X_Pos<60)&&(Y_Pos>44)&&(Y_Pos<94))
                          KEY_NEMBER=0x59;
                      else  if((X_Pos>0)&&(X_Pos<60)&&(Y_Pos>94)&&(Y_Pos<134))
                          KEY_NEMBER=0x5A;
			  else  if((X_Pos>0)&&(X_Pos<60)&&(Y_Pos>134)&&(Y_Pos<174))
                          KEY_NEMBER=0x5B;
			 else  if((X_Pos>0)&&(X_Pos<60)&&(Y_Pos>174)&&(Y_Pos<220))
                          KEY_NEMBER=0x5C;
			 
			  else if((X_Pos>125)&&(X_Pos<384)&&(Y_Pos>75)&&(Y_Pos<100))
                          KEY_NEMBER=0x4A;

                        else if((X_Pos>125)&&(X_Pos<384)&&(Y_Pos>100)&&(Y_Pos<130))
                          KEY_NEMBER=0x4B;

                        else if((X_Pos>125)&&(X_Pos<384)&&(Y_Pos>130)&&(Y_Pos<157))
                          KEY_NEMBER=0x4C;
					   
                        else if((X_Pos>125)&&(X_Pos<384)&&(Y_Pos>157)&&(Y_Pos<181))
                          KEY_NEMBER=0x4D;

                        else if((X_Pos>125)&&(X_Pos<384)&&(Y_Pos>181)&&(Y_Pos<205))
                          KEY_NEMBER=0x4E;

			
			  
                      }

		       }


                          else if(unMXR_score ==3)
				 {
			
                      
                      
		     if((X_Pos>0)&&(X_Pos<60)&&(Y_Pos>44)&&(Y_Pos<94))
                          KEY_NEMBER=0x59;
                      else  if((X_Pos>0)&&(X_Pos<60)&&(Y_Pos>94)&&(Y_Pos<134))
                          KEY_NEMBER=0x5A;
			  else  if((X_Pos>0)&&(X_Pos<60)&&(Y_Pos>134)&&(Y_Pos<174))
                          KEY_NEMBER=0x5B;
			 else  if((X_Pos>0)&&(X_Pos<60)&&(Y_Pos>174)&&(Y_Pos<220))
                          KEY_NEMBER=0x5C;
			 
			  else if((X_Pos>125)&&(X_Pos<384)&&(Y_Pos>75)&&(Y_Pos<100))
                          KEY_NEMBER=0x4A;

                        else if((X_Pos>125)&&(X_Pos<384)&&(Y_Pos>100)&&(Y_Pos<130))
                          KEY_NEMBER=0x4B;

                        else if((X_Pos>125)&&(X_Pos<384)&&(Y_Pos>130)&&(Y_Pos<157))
                          KEY_NEMBER=0x4C;
					   
                        else if((X_Pos>125)&&(X_Pos<384)&&(Y_Pos>157)&&(Y_Pos<181))
                          KEY_NEMBER=0x4D;

                        else if((X_Pos>125)&&(X_Pos<384)&&(Y_Pos>181)&&(Y_Pos<205))
                          KEY_NEMBER=0x4E;

                       
			 
			 
			
                   
			 

			
			  
                     

		       }

                 else if(unMXR_score ==4)
			{
			
                      
                      
		     if((X_Pos>0)&&(X_Pos<60)&&(Y_Pos>44)&&(Y_Pos<94))
                          KEY_NEMBER=0x59;
                      else  if((X_Pos>0)&&(X_Pos<60)&&(Y_Pos>94)&&(Y_Pos<134))
                          KEY_NEMBER=0x5A;
			  else  if((X_Pos>0)&&(X_Pos<60)&&(Y_Pos>134)&&(Y_Pos<174))
                          KEY_NEMBER=0x5B;
			 else  if((X_Pos>0)&&(X_Pos<60)&&(Y_Pos>174)&&(Y_Pos<220))
                          KEY_NEMBER=0x5C;
			 
			  else if((X_Pos>125)&&(X_Pos<384)&&(Y_Pos>75)&&(Y_Pos<100))
                          KEY_NEMBER=0x4A;

                        else if((X_Pos>125)&&(X_Pos<384)&&(Y_Pos>100)&&(Y_Pos<130))
                          KEY_NEMBER=0x4B;

                        else if((X_Pos>125)&&(X_Pos<384)&&(Y_Pos>130)&&(Y_Pos<157))
                          KEY_NEMBER=0x4C;
					   
                        else if((X_Pos>125)&&(X_Pos<384)&&(Y_Pos>157)&&(Y_Pos<181))

⌨️ 快捷键说明

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