📄 rusian.c
字号:
/*****************************************
NAME: Touchpanel.c
DESC: ADC & Touch screen test
HISTORY:
2003.09.23:Leon YH KIM: draft ver 1.0
*****************************************/
#include "def.h"
#include "2440addr.h"
#include "2440lib.h"
#define REQCNT 30
#define ADCPRS 9 //YH 0627
#define LOOP 1
#define FROM_BCD(n) ((((n) >> 4) * 10) + ((n) & 0xf))
#define TO_BCD(n) ((((n) / 10) << 4) | ((n) % 10))
#define RGB(r,g,b) (unsigned int)( (r << 16) + (g << 8) + b )
void __irq AdcTsAuto1(void);
extern int seed;
extern int randomnumber(void);
extern int Glib_FilledRectangle(int,int,int,int,int);
extern int Glib_Rectangle(int,int,int,int,int);
extern int Lcd_Tft_NEC35_Init1(void);
extern int Lcd_ClearScr(int);
extern void Lcd_printf(unsigned int x,unsigned int y,unsigned int c,unsigned int bk_c,unsigned int st,char *fmt,...);
extern int x;
extern int y;
int count1=0,j=0;
int x11=0,y11=0;
int x22=0,y22=0;
volatile int xdata1, ydata1;
int cube_M=0,cube_InitM=0;
int save_InitM=0,sc=0;
int cube_Mask=0;
int cube_Move=0;
int xx,yy;
signed int tuch=0;
signed int tuchag=0;
int tuchmask=0;
int tuch_masktest=0;
int MoveR=0;
int MoveL=0;
int Move_mark=0;
int Movecount=0;
int time_count=0;
int MoveADD=0;
int drupcount=0;
int move_count=0;
int cube_stopMark=1;
int cube_down=0;
int Blockcenter[7]={80,10};
signed int init=0;
int cube_Init[4][16]={0};
int cube_Initsaved[4][16]={{70,0,80,10,80,0,90,10,90,0,100,10,80,10,90,20},{80,0,90,10,80,10,90,20,90,10,100,20,80,20,90,30},{70,10,80,20,80,0,90,10,80,10,90,20,90,10,100,20},{70,10,80,20,80,0,90,10,80,10,90,20,80,20,90,30}};
int cube_Init1[4][16]={{70,0,80,10,80,0,90,10,90,0,100,10,80,10,90,20},{80,0,90,10,80,10,90,20,90,10,100,20,80,20,90,30},{70,10,80,20,80,0,90,10,80,10,90,20,90,10,100,20},{70,10,80,20,80,0,90,10,80,10,90,20,80,20,90,30}};
int cube_Init2[4][16]={{70,0,80,10,70,10,80,20,70,20,80,30,80,20,90,30},{70,10,80,20,80,10,90,20,90,10,100,20,90,0,100,10},{70,0,80,10,80,10,90,20,80,20,90,30,80,0,90,10},{70,0,80,10,70,10,80,20,80,0,90,10,90,0,100,10}};
int cube_Init3[4][16]={{70,20,80,30,80,20,90,30,80,10,90,20,80,0,90,10},{70,0,80,10,80,0,90,10,90,0,100,10,90,10,100,20},{70,0,80,10,80,0,90,10,70,10,80,20,70,20,80,30},{70,0,80,10,70,10,80,20,80,10,90,20,90,10,100,20}};
int cube_Init4[4][16]={{70,0,80,10,80,0,90,10,80,10,90,20,90,10,100,20},{80,0,90,10,80,10,90,20,70,10,80,20,70,20,80,30},{70,0,80,10,80,0,90,10,80,10,90,20,90,10,100,20},{80,0,90,10,80,10,90,20,70,10,80,20,70,20,80,30}};
int cube_Init5[4][16]={{70,10,80,20,80,10,90,20,80,0,90,10,90,0,100,10},{70,0,80,10,70,10,80,20,80,10,90,20,80,20,90,30},{70,10,80,20,80,10,90,20,80,0,90,10,90,0,100,10},{70,0,80,10,70,10,80,20,80,10,90,20,80,20,90,30}};
int cube_Init6[4][16]={{70,0,80,10,80,0,90,10,70,10,80,20,80,10,90,20},{70,0,80,10,80,0,90,10,70,10,80,20,80,10,90,20},{70,0,80,10,80,0,90,10,70,10,80,20,80,10,90,20},{70,0,80,10,80,0,90,10,70,10,80,20,80,10,90,20}};
int cube_Init7[4][16]={{70,0,80,10,70,10,80,20,70,20,80,30,70,30,80,40},{70,0,80,10,80,0,90,10,90,0,100,10,100,0,110,10},{70,0,80,10,70,10,80,20,70,20,80,30,70,30,80,40},{70,0,80,10,80,0,90,10,90,0,100,10,100,0,110,10}};
int turn_mark_window[4][16]={0};
int turn_mark_eag[4][16]={0};
int turn_mark1[4][16]={{160,150,160,150},{0,10,0,10},{10,5,10,15},{25,20,25,20}};
int turn_mark2[4][16]={{150,160,150,160},{10,0,10,0},{15,10,15,10},{20,25,20,25}};
int turn_mark3[4][16]={{150,160,150,160},{10,0,10,0},{15,10,15,10},{20,25,20,25}};
int turn_mark4[4][16]={{160,150,160,150},{0,10,0,10},{10,15,10,15},{25,20,25,20}};
int turn_mark5[4][16]={{160,150,160,150},{0,10,0,10},{10,15,10,15},{25,20,25,20}};
int turn_mark6[4][16]={{160,160,160,160},{0,0,0,0},{15,15,15,15},{25,25,25,25}};
int turn_mark7[4][16]={{130,160,130,160},{30,0,30,0},{20,5,20,5},{15,30,15,30}};
int Screem_map[16][32]={0};
signed int clr=0;
int color1[4]={0};
int time_color=0;
int cube_color[]={0x001f,0x07e0,0xf800,0xf81f,0x07ff};
int cube[]={0,0,0,0,0};
int save_cubey[]={0,0,0,0,0,0,0,0};
int save_cubex[]={0,0,0,0,0,0,0,0};
int save_cubexmax=0;
int save_cubexmin=130;
int save_cubeymax=0;
int save_cubeymaxagn=0;
int save_cubexminagn=0;
int save_cubeymin=0;
int save_cube=0;
int save_cubeyminagn=0;
int save_InitMagn=0;
int Y_count[16]={0};
int Y_countsaved[16]={0};
int X_count[32]={0};
int X_countsaved[32]={0};
int save_cubexmaxagn=0;
int pause=0;
int pause_tuch=1;
int begin=0;
int stop=0;
int game_offmark=0;
int window=0;
int windowcenterx=0;
int windowcentery=0;
int i=0;
int second=0;
int ti=0;
int time=0;
int times=0;
int hard=0;
int drup_mark=1;
int cube_delet=0;
int score=0;
int rYear, rMonth,rDay,rDayOfWeek,rHour,rMinute,rSecond;
void Get_randseed(void)
{
rRTCCON = 1 ;
while(second==0)
second=rBCDSEC;
rRTCCON &= ~1 ;
seed=second;
Uart_Printf("seed=%d\n",seed);
second=0;
}
void Rtc_Init(void)
{
int wYear, wMonth,wDay,wDayOfWeek,wHour,wMinute,wSecond;
wYear = 2008;
wMonth = 9;
wDay = 5;
wDayOfWeek = 5;
wHour= 9;
wMinute = 41;
wSecond = 30;
rRTCCON = 1 ; //RTC read and write enable
rBCDYEAR = (unsigned char)TO_BCD(wYear%100); //年
rBCDMON = (unsigned char)TO_BCD(wMonth); //月
rBCDDAY = (unsigned char)TO_BCD(wDay); //日
rBCDDATE = wDayOfWeek+1; //星期
rBCDHOUR = (unsigned char)TO_BCD(wHour); //小时
rBCDMIN = (unsigned char)TO_BCD(wMinute); //分
rBCDSEC = (unsigned char)TO_BCD(wSecond); //秒
rRTCCON &= ~1 ; //RTC read and write disable
}
void Get_Rtc(void)
{
rRTCCON = 1 ;
if(rBCDYEAR==0x99)
rYear = 1999;
else
rYear = (2000 + rBCDYEAR);
rMonth = FROM_BCD(rBCDMON & 0x1f);
rDay = FROM_BCD(rBCDDAY & 0x03f);
rDayOfWeek = rBCDDATE-1;
rHour = FROM_BCD(rBCDHOUR & 0x3f);
rMinute = FROM_BCD(rBCDMIN & 0x7f);
rSecond = FROM_BCD(rBCDSEC & 0x7f);
rRTCCON &= ~1 ;
}
void Total_Init(void)
{
time_count=0;
count1=0,j=0;
x11=0,y11=0;
x22=0,y22=0;
save_cubeymax=0;
save_cubeymin=320;
cube_M=0,cube_InitM=0;
save_InitM=0,sc=0;
cube_Mask=0;
cube_Move=0;
xx=0;
yy=0;
tuch=0;
MoveR=0;
MoveL=0;
tuchmask=0;
tuch_masktest=0;
drupcount=0;
tuch=tuchag;
// Uart_Printf("init=%d\n",init);
// Uart_Printf("tuch=%d\n",tuch);
window=0;
for(j=0;j<8;j++)
{
save_cubey[j]=0;
}
for(j=0;j<8;j++)
{
save_cubex[j]=0;
}
save_cubexmax=0;
tuchmask=0;
save_cubexmax=0;
save_cubexmin=240;
pause=0;
begin=0;
stop=0;
}
void delay1(void)
{
int ii;
for(;ti>0;ti--)
{
for(ii=0;ii<10000;ii++){}
}
time_count++;
}
void delay2(void)
{
int tii,tti=500;
for(;tti>0;tti--)
{
for(tii=0;tii<10000;tii++){}
}
}
void Move_Mask(void)
{
Uart_Printf("MoveL=%d\n",MoveL);
Uart_Printf("MoveR=%d\n",MoveR);
Uart_Printf("tuch=%d\n",tuch);
if(MoveR>MoveL)
Movecount=(MoveR-MoveL);
else if (MoveR<MoveL)
Movecount=(MoveL-MoveR);
for(;Movecount>0;Movecount--)
MoveADD+=10;
cube_Move=0;
if(MoveR>MoveL)
{
for(j=0;j<4;j++)
{
if(j!=tuch)
for(i=0;i<8;i++)
{
cube_Init[j][cube_Move]+=MoveADD;
cube_Move+=2;
// if(j==2)
// Uart_Printf("cube_Init[3]=%d\n",cube_Init[j][cube_Move-2]);
// if(j==1)
// Uart_Printf("cube_Init[0]=%d\n",cube_Init[j][cube_Move-2]);
}
}
cube_Move=0;
if(tuch!=2)
for(i=0;i<8;i++)
{
cube_Init[2][cube_Move]+=MoveADD;
cube_Move+=2;
// Uart_Printf("cube_Init[2]=%d\n",cube_Init[2][cube_Move-2]);
}
else if(tuch==2)
for(i=0;i<8;i++)
{
cube_Init[3][cube_Move]+=MoveADD;
cube_Init[1][cube_Move]+=MoveADD;
cube_Init[2][cube_Move]-=MoveADD;
cube_Move+=2;
// Uart_Printf("cube_Init[2]=%d\n",cube_Init[2][cube_Move-2]);
}
cube_Move=0;
if(tuch==3)
for(i=0;i<8;i++)
{
cube_Init[2][cube_Move]-=MoveADD;
cube_Init[1][cube_Move]+=MoveADD;
cube_Move+=2;
// Uart_Printf("cube_Init[2]=%d\n",cube_Init[2][cube_Move-2]);
}
MoveADD=0;
Uart_Printf("MoveADD=%d\n",MoveADD);
// MoveADD=0;
}
if(MoveL>MoveR)
{
for(j=0;j<4;j++)
{
if(j!=tuch)
for(i=0;i<8;i++)
{
cube_Init[j][cube_Move]-=MoveADD;
cube_Move+=2;
// if(j==4)
// Uart_Printf("cube_Init[3]=%d\n",cube_Init[j][cube_Move]);
}
}
cube_Move=0;
if(tuch!=2)
for(i=0;i<8;i++)
{
cube_Init[2][cube_Move]-=MoveADD;
cube_Move+=2;
// Uart_Printf("cube_Init[2]=%d\n",cube_Init[2][cube_Move-2]);
}
else if(tuch==2)
for(i=0;i<8;i++)
{
cube_Init[3][cube_Move]+=MoveADD;
cube_Init[1][cube_Move]+=MoveADD;
cube_Init[2][cube_Move]-=MoveADD;
cube_Move+=2;
// Uart_Printf("cube_Init[2]=%d\n",cube_Init[2][cube_Move-2]);
}
cube_Move=0;
if(tuch==3)
for(i=0;i<8;i++)
{
cube_Init[2][cube_Move]+=MoveADD;
cube_Init[1][cube_Move]-=MoveADD;
cube_Move+=2;
// Uart_Printf("cube_Init[2]=%d\n",cube_Init[2][cube_Move-2]);
}
MoveADD=0;
Uart_Printf("MoveADD=%d\n",MoveADD);
// MoveADD=0;
}
}
void Clearn_Block(void)
{
sc=0;
cube_InitM=0;
cube_M=0;
save_InitM=0;
for(j=0;j<4;j++)
{
for(cube_InitM=save_InitM;cube_InitM<16;cube_InitM++)
{
cube_M++;
cube[cube_M]=cube_Init[tuch][cube_InitM];
// Uart_Printf("cubeinit=%d\n",cube_Init[cube_InitM]);
if(cube_M==4)
{
save_InitM=cube_InitM+1;
break;
}
}
cube_M=0;
// cube[1]+=MoveADD;
sc++;
cube[2]=save_cubey[sc];
// Uart_Printf("save_cubey=%d\n",save_cubey[sc]);
// cube[3]+=MoveADD;
sc++;
cube[4]=save_cubey[sc];
// Uart_Printf("save_cubey=%d\n",save_cubey[sc]);
Glib_FilledRectangle(cube[1],cube[2],cube[3],cube[4],(0x1f<<11) | (0x3f<<5) | (0x1f));
// Uart_Printf("cube1=%d cube2=%d cube3=%d cube4=%d\n",cube[1],cube[2],cube[3],cube[4]);
}
}
void Getsave_cubey(void)
{
save_InitM=0;
save_cubeymax=0;
save_cubeymin=320;
for(j=0;j<4;j++)
{
for(cube_InitM=save_InitM;cube_InitM<16;cube_InitM++)
{
cube_M++;
cube[cube_M]=cube_Init[tuch][cube_InitM];
if(cube_M==4)
{
save_InitM=cube_InitM+1;
break;
}
}
cube_M=0;
sc++;
save_cubey[sc]=(cube[2]+drupcount);
sc++;
save_cubey[sc]=(cube[4]+drupcount);
if(save_cubeymin>cube[2])
save_cubeymin=cube[2];
if(save_cubeymin>cube[4])
save_cubeymin=cube[4];
if(save_cubeymax<cube[2])
save_cubeymax=cube[2];
if(save_cubeymax<cube[4])
save_cubeymax=cube[4];
}
}
void Getsave_cubexmax(void)
{
save_InitM=0;
sc=0;
save_cubexmax=0;
save_cubexmin=160;
for(j=0;j<4;j++)
{
for(cube_InitM=save_InitM;cube_InitM<16;cube_InitM++)
{
cube_M++;
cube[cube_M]=cube_Init[tuch][cube_InitM];
if(cube_M==4)
{
save_InitM=cube_InitM+1;
break;
}
}
cube_M=0;
sc++;
save_cubex[sc]=cube[1];
// Uart_Printf("save_cubex=%d\n",save_cubex[sc]);
if(save_cubexmax<save_cubex[sc])
save_cubexmax=save_cubex[sc];
sc++;
save_cubex[sc]=cube[3];
// Uart_Printf("save_cubex=%d\n",save_cubex[sc]);
if(save_cubexmin>cube[1])
save_cubexmin=cube[1];
if(save_cubexmin>cube[3])
save_cubexmin=cube[3];
if(save_cubexmax<cube[1])
save_cubexmax=cube[1];
if(save_cubexmax<cube[3])
save_cubexmax=cube[3];
}
}
void Getsave_cubeymax(void)
{
sc=0;
cube_InitM=0;
cube_M=0;
save_InitM=0;
save_cubeymax=0;
save_cubeymin=320;
for(j=0;j<4;j++)
{
for(cube_InitM=save_InitM;cube_InitM<16;cube_InitM++)
{
cube_M++;
cube[cube_M]=cube_Init[tuch][cube_InitM];
if(cube_M==4)
{
save_InitM=cube_InitM+1;
break;
}
}
cube_M=0;
if(save_cubeymin>cube[2])
save_cubeymin=cube[2];
if(save_cubeymin>cube[4])
save_cubeymin=cube[4];
if(save_cubeymax<cube[2])
save_cubeymax=cube[2];
if(save_cubeymax<cube[4])
save_cubeymax=cube[4];
}
}
/*******************************************************To scan the number of cubes for each block******************************/
void Scan_cube(void)
{
cube_InitM=0;
cube_M=0;
save_InitM=0;
save_cubexmaxagn=save_cubexmax;
for(;save_cubexmax>save_cubexmin;save_cubexmax-=10)
{
for(j=0;j<4;j++)
{
for(cube_InitM=save_InitM;cube_InitM<16;cube_InitM++)
{
cube_M++;
cube[cube_M]=cube_Init[tuch][cube_InitM];
if(cube_M==4)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -