?? c_entry.c
字號:
#include "EP73121.h"
#include "touchpad.h"
#include "lcd.h"
#include "color.h"
#include "graphic.h"
unsigned long topbottomx[2];
unsigned long topbottomy[2];
extern void touchpane_disp(void);
unsigned long touch_data_process( unsigned short *data_arrey)
{
unsigned short i, j, t;
unsigned long total = 0;
for ( j = 1 ; j < 20 ; j++)
for ( i = 1 ; i <= 20 - j ; i ++)
if ( *(data_arrey+i) > *(data_arrey+i+1))
{t = *(data_arrey+i); *(data_arrey+i) = *(data_arrey+i+1); *(data_arrey+i+1) = t;}
for (i = 5 ; i <15 ; i++)
total += *(data_arrey+i);
total /= 10;
return total;
}
int c_entry()
{
unsigned short touch_buffer_x[20];
unsigned short touch_buffer_y[20];
unsigned int val;
unsigned long valx = 0, valy = 0;
unsigned char i;
init_touchpad();
init_lcd();
///////////////////////////////////
// 校正
///////////////////////////////////
do
{
clear_lcd();
draw_vline(1, 0, 5, RED);
draw_hline(0, 5, 1, RED);
while(1)
{
val = INTSR1;
if (val & 0x00000020)
{
i = 10;
while (!i--){
topbottomx[0] = ReadX();
topbottomy[0] = ReadY();
}
for (i = 0 ; i <20 ; i ++){
topbottomx[0] = ReadX();
topbottomy[0] = ReadY();
topbottomx[0] &=0x00000fff;
topbottomy[0] &=0x00000fff;
//CONSOL_Printf("valX=%d\tvalY=%d\n",topbottomx[0],topbottomy[0]);
touch_buffer_x[i] = (unsigned short)(topbottomx[0] & 0x00000fff);
touch_buffer_y[i] = (unsigned short)(topbottomy[0] & 0x00000fff);
}
val = INTSR1;
while((val & 0x00000020) == 0x20)
{
val = INTSR1;
}
topbottomx[0] = touch_data_process(touch_buffer_x);
topbottomy[0] = touch_data_process(touch_buffer_y);
//topbottomy[0] &= 0x00000fff;
//CONSOL_Printf("!!!EvalX=%d\tEvalY=%d\n",topbottomx[0],topbottomy[0]);
break;
}
}
clear_lcd();
draw_vline(319, 235, 240, RED);
draw_hline(315, 320, 239, RED);
while(1)
{
val = INTSR1;
if (val & 0x00000020)
{
i = 10;
while (!i--){
topbottomx[1] = ReadX();
topbottomy[1] = ReadY();
}
for (i = 0 ; i <20 ; i ++){
topbottomx[1] = ReadX();
topbottomy[1] = ReadY();
touch_buffer_x[i] = (unsigned short)(topbottomx[1] & 0x00000fff);
touch_buffer_y[i] = (unsigned short)(topbottomy[1] & 0x00000fff);
}
val = INTSR1;
while((val & 0x00000020) == 0x20)
{
val = INTSR1;
}
topbottomx[1] = touch_data_process(touch_buffer_x);
topbottomy[1] = touch_data_process(touch_buffer_y);
//topbottomy[0] &= 0x00000fff;
//CONSOL_Printf("valX=%d\tvalY=%d\n",topbottomx[1],topbottomy[1]);
break;
}
}
clear_lcd();
draw_vline(160, 115, 125, RED);
draw_hline(155, 165, 120, RED);
while(1)
{
val = INTSR1;
if (val & 0x00000020)
{
i = 10;
while (!i--){
valx = ReadX();
valy = ReadY();
}
for (i = 0 ; i <20 ; i ++){
valx = ReadX();
valy = ReadY();
touch_buffer_x[i] = (unsigned short)(valx & 0x00000fff);
touch_buffer_y[i] = (unsigned short)(valy & 0x00000fff);
}
val = INTSR1;
while((val & 0x00000020) == 0x20)
{
val = INTSR1;
}
valx = touch_data_process(touch_buffer_x);
valy = touch_data_process(touch_buffer_y);
//topbottomy[0] &= 0x00000fff;
//CONSOL_Printf("valX=%d\tvalY=%d\n",topbottomx[1],topbottomy[1]);
break;
}
}
/* valx &= 0x000000fff;
valy &= 0x000000fff;
topbottomx[0] &= 0x00000fff;
topbottomx[1] &= 0x00000fff;
topbottomy[0] &= 0x00000fff;
topbottomy[1] &= 0x00000fff;
*/
valx = 320*(valx-topbottomx[0])/(topbottomx[1]-topbottomx[0]);
valy = 240*(valy-topbottomy[0])/(topbottomy[1]-topbottomy[0]);
//CONSOL_Printf("\n!!!cenvalX=%d\tcenvalY=%d\n",valx,valy);
}while(!(valx<170 && valx>150 && valy<130 && valy>110));
touchpane_disp();
return 0;
}
void touchpane_disp(void)
{
unsigned int val;
unsigned long valx = 0, valy = 0;
unsigned short i;
unsigned short touch_buffer_x[20];
unsigned short touch_buffer_y[20];
while(1)
{
val = INTSR1;
if (val & 0x00000020)
{
i = 10;
while (!i--){
valx = ReadX();
valy = ReadY();
}
for (i = 0 ; i <20 ; i ++){
valx = ReadX();
valy = ReadY();
touch_buffer_x[i] = (unsigned short)(valx & 0x00000fff);
touch_buffer_y[i] = (unsigned short)(valy & 0x00000fff);
}
val = INTSR1;
while((val & 0x00000020) == 0x20)
{
val = INTSR1;
}
valx = touch_data_process(touch_buffer_x);
valy = touch_data_process(touch_buffer_y);
valx = 320*(valx-topbottomx[0])/(topbottomx[1]-topbottomx[0]);
valy = 240*(valy-topbottomy[0])/(topbottomy[1]-topbottomy[0]);
//CONSOL_Printf("valX=%x\tvalY=%x\n",valx,valy);
clear_lcd();
draw_vline(valx, valy-5, valy+5, RED);
draw_hline(valx-5, valx+5, valy, RED);
}
}
return;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -