Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Ответ: (+)

Отправлено RED_DRAGON (94.190.65.229) 21 января 2010, г. 13:50
В ответ на: Есть вопрос по сенсорному экрану(+) отправлено misyachniy 21 января 2010, г. 12:23

typedef struct
{
unsigned char ts_state;
unsigned short x, x1;
unsigned short y, y1;
unsigned char touched;
unsigned short pen_x, pen_y;

//

unsigned short vx0, vy0, vxmax, vymax, adc_x, adc_y;
}t_ts_pen;

void ut_ts_calibrate()
{
fill_sdram(graph16_rgb2colour555(0, 0, 0));


// TS Calibration
// leftupper corner

out_text(&my_font, "Touchscreen calibration",
SCR_WIDTH / 2 - get_text_width(&my_font,"Touchscreen calibration") /2, 8);
out_text(&my_font, "Upper-left corner",
SCR_WIDTH / 2 - get_text_width(&my_font,"Upper-left corner") /2, 40);
graph16_line(10, 0, 10, 20, graph16_rgb2colour555(8, 8, 8));
graph16_line(0, 10, 20, 10, graph16_rgb2colour555(8, 8, 8));


ts_pen.touched = FALSE;
while(!ts_pen.touched)delay(100);
ts_pen.touched = FALSE;
ts_pen.vx0 = ts_pen.adc_x;
ts_pen.vy0 = ts_pen.adc_y;
out_text(&my_font, "OK!",
SCR_WIDTH / 2 - get_text_width(&my_font,"OK!") /2, 70);

delay(0x1000000);

// right_lower corner

out_text(&my_font, "Lower-right corner",
SCR_WIDTH / 2 - get_text_width(&my_font,"Lower-right corner") /2, 110);
graph16_line(SCR_WIDTH, SCR_HEIGHT-10, SCR_WIDTH-20, SCR_HEIGHT - 10, graph16_rgb2colour555(8, 8, 8));
graph16_line(SCR_WIDTH-10, SCR_HEIGHT, SCR_WIDTH-10, SCR_HEIGHT - 20, graph16_rgb2colour555(8, 8, 8));

ts_pen.touched = FALSE;
while(!ts_pen.touched)delay(100);
ts_pen.touched = FALSE;
ts_pen.vxmax = ts_pen.adc_x;
ts_pen.vymax = ts_pen.adc_y;
out_text(&my_font, "OK!",
SCR_WIDTH / 2 - get_text_width(&my_font,"OK!") /2, 140);
delay(0x1000000);

}

void ts_translate_coordinates()
{
ts_pen.pen_x = ((ts_pen.adc_x - ts_pen.vx0)*SCR_WIDTH)/(ts_pen.vxmax-ts_pen.vx0);
ts_pen.pen_y = ((ts_pen.adc_y - ts_pen.vy0)*SCR_HEIGHT)/(ts_pen.vymax-ts_pen.vy0);
}


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
введите число 123:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru