SainSmart MEGA2560 R3+5" LCD Touch Panel, проблема с тачем

terfree
Offline
Зарегистрирован: 10.09.2014

C arduino только начал разбираться, просьба сильно не пинать если что :)

В общем приобрел я сие чудо http://www.sainsmart.com/arduino/arduino-shields/lcd-shields/sainsmart-mega2560-r3-5-lcd-touch-panel-sd-card-slot-shield-kit-for-arduino-1.html

Экран с разрешением 800х480. Примерчик UTFT_Demo_800x480 прекрасно проказывает. Начал разбираться с тачем. И тут ждала засада. Никак он не хочет работать совместно с экраном. Запускаю пример UTouch_QuickDraw, рисует, но почему то одной части экрана, как будто в окне размером 320х240. Выглядит это так http://youtu.be/0nR15VmSqaI

Модель экрана вроде свою прописал. Тач калибровать пробовал, результаты (поучились такие

#define CAL_X 0x01F207C5UL
#define CAL_Y 0x01F887FBUL
#define CAL_S 0x001DF31FUL)

в UTouchCD.h прописывал, ориентацию тоже пробовал менять. Ничего не помогло :(

Вразумите плиз, где глянуть чтоб заработало ? Если не трудно, киньте примерчиком...

Бублик
Бублик аватар
Offline
Зарегистрирован: 05.12.2012

Верни оригинальный UTouchCD.h - калибровка делает только хуже, как правило.

Все дисплеи, что я использовал в ланшафтном положении требовали портретной ориентации тача...



myGLCD.InitLCD(LANDSCAPE);
myTouch.InitTouch(PORTRAIT);

Копать надо в UTouch.cpp есть варианты)))







void UTouch::InitTouch(byte orientation)
{
	orient					= orientation;
	_default_orientation	= CAL_S>>31;
	touch_x_left			= (CAL_X>>14) & 0x3FFF;
	touch_x_right			= CAL_X & 0x3FFF;
	touch_y_top				= (CAL_Y>>14) & 0x3FFF;
	touch_y_bottom			= CAL_Y & 0x3FFF;
	disp_x_size				= 400;//(CAL_S>>12) & 0x0FFF;
	disp_y_size				= 240;//CAL_S & 0x0FFF;
	prec					= 10;
...
}






void UTouch::InitTouch(byte orientation)
{
	orient					= orientation;
	_default_orientation	= CAL_S>>31;
	touch_x_left			= (CAL_X>>14) & 0x3FFF;
	touch_x_right			= CAL_X & 0x3FFF;
	touch_y_top				= (CAL_Y>>14) & 0x3FFF;
	touch_y_bottom			= CAL_Y & 0x3FFF;
	disp_x_size				= 480; //(CAL_S>>12) & 0x0FFF;
	disp_y_size				= 800; //CAL_S & 0x0FFF;
	prec					= 10;
...
}

И ещё, под такое разрешение всетаки стоило взять Arduino DUE

terfree
Offline
Зарегистрирован: 10.09.2014

Спасибо за подсказки. Вроде победился тач шаманством с ориентацией и разрешениями. Даже калибровка выполнилась по уму.

А DUE она дороже, под мои задачи дожно и Меги хватить. Хочу контроллер для отопления и вентилиции сделать, а там картинки статичные в основном планируются...

Бублик
Бублик аватар
Offline
Зарегистрирован: 05.12.2012

terfree пишет:

Спасибо за подсказки. Вроде победился тач шаманством с ориентацией и разрешениями. Даже калибровка выполнилась по уму.

А DUE она дороже, под мои задачи дожно и Меги хватить. Хочу контроллер для отопления и вентилиции сделать, а там картинки статичные в основном планируются...

Всегда рад помочь)
Сейчас что MEGA, что DUE в одну цену) я брал DUE месяц назад по 14 баксов.

http://ru.aliexpress.com/item/For-Arduino-Due-2012-R3-ARM-Version-Main-Control-Board/1611618342.html