임베디드 보드에 800 * 480 LCD 디스플레이가 올바르게 안 되네요.

falhed의 이미지

원래 임베디드 보드에 240 * 320 LCD로 디스플레이 했는데요, 저희가 800 * 480으로 업그레이드했습니다.

그래서 800 * 480에 디스플레이 해 보았는데 이상하게 디스플레이 되네요. 2주일째 삽질하고 있습니다ㅠㅠ

800 * 480으로 디스플레이 하기 위해 두 가지를 수정했습니다.

{S1DREG_LCD_DISP_HWIDTH, 0x63}, /* 800 pix */
{S1DREG_LCD_DISP_VHEIGHT0, 0xDF}, /* 480 = ((lines - 256) -1) */

이렇게 하고 보드에 그림을 디스플레이 해보니깐요.

이미지의 1/4만 LCD 화면에 꽉 채우면서 디스플레이 되네요.

즉, || 1/4 | 1/4 | 1/4 | 1/4 ||

디스플레이는 화면에 꽉 차게 되는데 왜 그림 전체가 디스플레이 되는게 아니라 1/4 이미지
가 화면을 꽉 채울까요?

답변 부탁드립니다.ㅠㅠ

blkstorm의 이미지

음, 그래픽 디바이스 드라이버 프로그래밍에서 손뗀지 2년이 넘어서 가물가물하네요.

그려지는 폭이 이상하다면 라인당 바이트수를 맞추셨는지 확인해보시기 바랍니다.

(어떤 chipset은 stride라는 표현을 쓰더군요)

만약 32bpp에 가로 800 픽셀이라면 32 * 800 / 8 = 3200 바이트가 되겠지요.

이 값을 그래픽 칩셋의 해당 레지스터에 쓰시기 바랍니다. 만약 1/4씩 그려진다면 현재값이 800으로 되어있을 가능성이 있습니다.

참고로, 칩셋에 따라서 라인당 바이트수가 2의 멱수의 배수로 세팅되어야하는 경우가 있습니다.
(16,32,1024의 배수...)

도움이 되었는지 모르겠네요.

이광우의 이미지

RGB interface LCD인지 CPU interface 를 가지는 LCD인지 모르겠군요.
현상으로 보면 이미지를 뿌리는 방향이 맞지 않아서 그런 것으로 보입니다.

다음과 같이 해보면 되지 않을까 생각합니다.

1. 800x480 이미지를 뿌리셨다면, 480x800 이미지를 출력 해보세요.
2. 90도 회전(Rotate)해서 출력 해보세요.
3. LCD의 출력하는 방향을 변경해 보세요.

1/4 이미지로 화면에 나타나는 경우는 보통 이미지 방향이 맞지 않을 때 나옵니다.
가로 이미지를 메모리에 쌓아서 세로 방향으로 출력하거나 반대의 상황으로
출력하는 경우 그렇게 보입니다.

참고로 CPU interface를 가진 GRAM이 있는 LCD의 경우 각 Pixel이 LCD에 출력되는
순서와 방향을 LCD의 레지스터 설정을 통해 바꿀 수도 있습니다.

Be Creative For Fun!!

Be Creative For Fun!!

falhed의 이미지

원래 보드에 240 * 320 LCD가 있었습니다.

{S1DREG_LCD_DISP_HWIDTH, 0x1D}, /* 240 pix */
가로 240일 때 240/8 -1 = 0x1D가 나왔구요,
{S1DREG_LCD_DISP_VHEIGHT0, 0x3F}, /* 320 = ((lines - 256) -1) */
세로 320일 때 320-257 = 0x3F가 나왔습니다.

그래서 제가 800 * 480으로 하니 0x63, 0xDF 나오더라구요....

이렇게 했는데 안되네요...대략 난감합니다.ㅠㅠ

blkstorm의 이미지

그래픽 드라이버를 동작시킬 때는 초기화를 위해서 Chipset의 레지스터 몇개를 세팅해야합니다.

해상도나 bpp정보만으로는 부족합니다. 위에 이광우 님이 말씀하신 것처럼 그리는 방향이나

rotation등도 있을 수 있구요, 제가 말씀드린 라인당 바이트수도 있을 수 있습니다.

해당 chipset의 드라이버 초기화에서 어떤 레지스터들이 세팅되는지 하나씩 확인해보시고

값을 바꿔가면서 테스트 해보시는게 가장 빠른 방법 같습니다.

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.