포럼 회원으로 등록하신분만 다운로드가 가능합니다. 최대 업로드 가능한 용량은 20MB 입니다.

저도 touch 처음 해보는거라 처음에 상당히 당황했습니다.
제 경험을 바탕으로 초보도 가능하도록 해보겠습니다^^;;
맞는지 틀리는지는  모르지만 smdk6410과 target board에서 잘 사용하고 있습니다.

1. 처음 lcd 내 방향중 기준이 되는곳은 어디인가?
-> 처음에 이부분이 가장 궁금했습니다. 물어볼 사람도 없고 해서 테스트 결과
LCD의 4 귀퉁이 값을 찍었을때 가장 X,Y좌표가 가장 작게 나오는 부분이 기준이 되는것 같습니다.
그 값이 물론 0,0은 아니지만 수식을 계산해서 0,0이 되도록 하면 됩니다.

가령 H=800, W=480일때

100,100                                                          1200,100


100,700                                                          1200, 700

4 좌표값은 LCD 4쪽을 찍었을떄의 값입니다.
X,Y기준으로 했을때, X,Y값이 +- 10~30 정도 차이가 날수 있는데. 작은쪽 값은 가능한 작게, 큰쪽 값은 가능한 큰값을 취하세요
(ex, 100,100쪽 값을 얻기위해 맨 왼쪽 위를 구석을 찍으면, (110, 120), (105, 110) , (100, 102), (102, 100)이렇게 나올수 있는데
x,y가 작은 쪽 값이므로 가능한 x,y의 가장 작은 값을 취하세요. 이와 비슷하게 큰 쪽은 가능한 큰값을)


이제 x, y값을 구해 보겠습니다.

100, 100->1200,100으로 움직이는 것은 x좌표가 증가 하는 것입니다.

ts->xp = ((tx->xp -100) * 800) / (1200 - 100)
이렇게 됩니다. 이 식이 이해가 가시죠?
tx->xp -100은 x가 이동한 거리입니다. 1200-100은 실제 xp가 움직일수 있는 거리구요

이와 같이 100,100->100,700의로 이동하는 것은 y가 이동하는 것입니다.
ts->yp = ((ts->yp - 100) * 480)/ (700-100)입니다.

ts->xp와 같은 원리입니다.

ts->xp, ts->yp에 대해 0보다 작으면 0 값을 넣어주고 480, 800보다 크면 480, 800을 넣어주면 되구요

또 input_set_aba_params()부분에서는 x,y의 최대값인 480, 800을 넣어주면 됩니다.

흠..나름 쉽다고 생각하고 썼는데 맞는지 모르겠습니다.^^;;;


고현철

2009.04.23 10:29:15
*.59.122.218

맞습니다....밑의 자료들과 이것을 합치면 제대로 포팅할 수 있을겁니다....^^
List of Articles
번호 제목 글쓴이 날짜 조회 수

사용자 로그인