📄 handler_dma.c
字号:
/********************************************************************************/
/*!
@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 + -