질문게시판 > TFT 관련 질문입니다.

TODAY856 TOTAL2,160,867
사이트 이용안내
Login▼/회원가입
최신글보기 질문게시판 기술자료 동영상강좌

아두이노 센서 ATMEGA128 PWM LED 초음파 AVR 블루투스 LCD UART 모터 적외선


BASIC4MCU | 질문게시판 | TFT 관련 질문입니다.

페이지 정보

작성자 승후 작성일2018-01-16 14:18 조회7,690회 댓글2건

본문

	

안녕하세요 TFT-32hx 모듈에 관해 질문드리고 싶은게 있는 학생입니다.


제가 ohm사에서 다운받아 온 예제소스를 보고 atmega128 키트와 TFT-32hx를 연결해 보았는데 어떤 예제 소스를 넣어봐도TFT 동작이 안 되네요...

 

// ATMEGA128  / TFT-32hx / avr studio4 //

 

지금 저는 8비트 통신을 하려고 하고 있어서 128의 PORTA에 TFT 데이터 포트 0~7을 연결해 두었고
예제 소스를 따라

PB6에 SD_CS

PB7에 TS_CS

PC3에 HB_WR

PC4에 -WR

PC5에 -RS

PC6에 -CS

PC7에 RESET(TFT)

PE4에 TS_INT


만 딱 128에 연결해둔 상태입니다. 예제 소스는 여기 있습니다.
/* ---------------------------------------------------------------------------- */
/*  TFT-LCD 모듈의 기본 함수     */
/* ---------------------------------------------------------------------------- */

void TFT_initialize(void)   /* initialize TFT-LCD with HX8347 */
{
  sbi(PORTC,7);     // reset TFT-LCD
  Delay_ms(5);
  cbi(PORTC,7);
  Delay_ms(120);

  TFT_write(0x02, 0x0000);   // window setting
  TFT_write(0x03, 0x0000);   // x = 0~239
  TFT_write(0x04, 0x0000);
  TFT_write(0x05, 0x00EF);
  TFT_write(0x06, 0x0000);   // y = 0~319
  TFT_write(0x07, 0x0000);
  TFT_write(0x08, 0x0001);
  TFT_write(0x09, 0x003F);

  TFT_write(0x01, 0x0006);   // display setting
  TFT_write(0x16, 0x0008);   // MV=0, MX=0, MY=0, BGR=1
  TFT_write(0x18, 0x0000);   // SM=0
  TFT_write(0x70, 0x0065);   // GS=1, SS=1, 16 bit/pixel
  TFT_write(0x23, 0x0095);
  TFT_write(0x24, 0x0095);
  TFT_write(0x25, 0x00FF);
  TFT_write(0x27, 0x0002);
  TFT_write(0x28, 0x0002);
  TFT_write(0x29, 0x0002);
  TFT_write(0x2A, 0x0002);
  TFT_write(0x2C, 0x0002);
  TFT_write(0x2D, 0x0002);
  TFT_write(0x3A, 0x0001);
  TFT_write(0x3B, 0x0001);
  TFT_write(0x3C, 0x00F0);
  TFT_write(0x3D, 0x0000);
  Delay_ms(20);
  TFT_write(0x35, 0x0038);
  TFT_write(0x36, 0x0078);
  TFT_write(0x3E, 0x0038);
  TFT_write(0x40, 0x000F);
  TFT_write(0x41, 0x00F0);

  TFT_write(0x19, 0x0049);   // power setting
  TFT_write(0x93, 0x000F);
  Delay_ms(10);
  TFT_write(0x20, 0x0040);
  TFT_write(0x1D, 0x0007);
  Delay_ms(10);
  TFT_write(0x1E, 0x0000);
  TFT_write(0x1F, 0x0004);
  TFT_write(0x44, 0x0040);   // VCom control for 3.3V
  TFT_write(0x45, 0x0012);
  Delay_ms(10);
  TFT_write(0x1C, 0x0004);
  Delay_ms(20);
  TFT_write(0x43, 0x0080); 
  Delay_ms(5);
  TFT_write(0x1B, 0x0018);   
  Delay_ms(40);
  TFT_write(0x1B, 0x0010);     
  Delay_ms(40);

  TFT_write(0x46, 0x00A4);   // gamma setting
  TFT_write(0x47, 0x0053);
  TFT_write(0x48, 0x0010);
  TFT_write(0x49, 0x005F);
  TFT_write(0x4A, 0x0004);
  TFT_write(0x4B, 0x003F);
  TFT_write(0x4C, 0x0002);
  TFT_write(0x4D, 0x00F6);
  TFT_write(0x4E, 0x0012);
  TFT_write(0x4F, 0x004C);
  TFT_write(0x50, 0x0046);
  TFT_write(0x51, 0x0044);

  TFT_write(0x90, 0x007F);   // display on setting
  TFT_write(0x26, 0x0004);
  Delay_ms(40);
  TFT_write(0x26, 0x0024);
  TFT_write(0x26, 0x002C);
  Delay_ms(40);
  TFT_write(0x26, 0x003C);

  TFT_write(0x57, 0x0002);   // internal VDDD setting
  TFT_write(0x55, 0x0000);
  TFT_write(0xFE, 0x005A);
  TFT_write(0x57, 0x0000);

  TFT_clear_screen();    // clear screen
}

void TFT_command(U08 IR)   /* write IR to TFT-LCD */
{
  PORTA = 0x00;     // output high byte
  PORTC = 0x50;     // -HB = 0
  PORTC = 0x58;     // -HB = 1
  PORTA = IR;     // output low byte
  PORTC = 0x18;     // -CS = RS = 0
  PORTC = 0x08;     // -WR = 0
  PORTC = 0x18;     // -WR = 1
  PORTC = 0x58;     // -CS = RS = 1
}

void TFT_data(U16 data)    /* write data to TFT-LCD */
{
  PORTA = data >> 8;    // output high byte
  PORTC = 0x70;     // -HB = 0
  PORTC = 0x78;     // -HB = 1
  PORTA = data & 0x00FF;   // output low byte
  PORTC = 0x38;     // -CS = 0, RS = 1
  PORTC = 0x28;     // -WR = 0
  PORTC = 0x38;     // -WR = 1
  PORTC = 0x78;     // -CS = RS = 1
}

void TFT_write(U08 reg, U16 val)  /* write TFT-LCD register */
{
  TFT_command(reg);
  TFT_data(val);
}

/* ---------------------------------------------------------------------------- */
/*  TFT-LCD 모듈의 출력제어 함수     */
/* ---------------------------------------------------------------------------- */

void TFT_clear_screen(void)   /* TFT-LCD clear screen with black color */
{
  TFT_color_screen(Black);
}

void TFT_color_screen(U16 color)  /* TFT-LCD full screen color */
{
  unsigned int i;
  unsigned char j;

  TFT_GRAM_address(0,0);

  for(i = 0; i < 320; i++)
    for(j = 0; j < 240; j++)
      TFT_data(color);
}

void TFT_GRAM_address(U16 xPos, U16 yPos) /* set GRAM address of TFT-LCD */
{
  if(ScreenMode == 'P')
    { if((xPos > 239) || (yPos > 319))
        return;
      TFT_write(0x02, 0x0000);   // xPos = 0~239
      TFT_write(0x03, xPos);
      TFT_write(0x06, yPos >> 8);  // yPos = 0~319
      TFT_write(0x07, yPos & 0x00FF);
    }
  else
    { if((xPos > 319) || (yPos > 239))
        return;
      TFT_write(0x02, xPos >> 8);  // xPos = 0~319
      TFT_write(0x03, xPos & 0x00FF);
      TFT_write(0x06, 0x0000);   // yPos = 0~239
      TFT_write(0x07, yPos);
    }

  TFT_command(0x22);
}

void TFT_xy(U08 xChar, U08 yChar)  /* set character position (x,y) */
{
  Xcharacter = xChar;
  Ycharacter = yChar;
}

void TFT_color(U16 colorfore, U16 colorback) /* set foreground and background color */
{
  foreground = colorfore;
  background = colorback;
}

void TFT_pixel(U16 xPos, U16 yPos, U16 color) /* write a pixel */
{
  if(ScreenMode == 'P')
    { if((xPos > 239) || (yPos > 319))
        return;
      TFT_write(0x02, 0x0000);   // xPos = 0~239
      TFT_write(0x03, xPos);
      TFT_write(0x06, yPos >> 8);  // yPos = 0~319
      TFT_write(0x07, yPos & 0x00FF);
    }
  else
    { if((xPos > 319) || (yPos > 239))
        return;
      TFT_write(0x02, xPos >> 8);  // xPos = 0~319
      TFT_write(0x03, xPos & 0x00FF);
      TFT_write(0x06, 0x0000);   // yPos = 0~239
      TFT_write(0x07, yPos);
    }

  if(color != Transparent)   // transparent mode ?
    TFT_write(0x22, color);
}

 

혹시 제가 잘못 연결하거나 연결안 한 부분이 있는지 궁금합니다..  

  • BASIC4MCU 작성글 SNS에 공유하기
  • 페이스북으로 보내기
  • 트위터로 보내기
  • 구글플러스로 보내기

댓글 2

조회수 7,690

승후님의 댓글

승후 작성일

혹시 부족한 점이 있으시다면 말씀 부탁드립니다.

master님의 댓글

master 작성일

회로도 및 전체 소스를 첨부하더라도
물건이 없으면 동작시켜보거나 디버깅을 하지 못하므로 문제점을 체크하기 어렵습니다.

서적의 예제는 소스코드에 문제가 없다고 생각되니
1. 하드웨어 연결을 꼼꼼히 체크
2. 소스코드는 문제가 없을테니 컴파일러(최적화) 옵션 등의 문제가 될만한 요인을 잘 체크해보세요
3. 예제소스의 회로를 변경 했을 경우에는 소스코드도 변경을 제대로 해줬는지 꼼꼼히 체크하세요
(웬만하면 예제와 동일하게 회로를 구성해야지 문제가 덜 생깁니다.)

질문게시판HOME > 질문게시판 목록

MCU, AVR, 아두이노 등 전자공학에 관련된 질문을 무료회원가입 후 작성해주시면 전문가가 답변해드립니다.
ATMEGA128PWMLED초음파
아두이노AVR블루투스LCD
UART모터적외선ATMEGA
전체 스위치 센서
질문게시판 목록
제목 작성자 작성일 조회
공지 MCU, AVR, 아두이노 등 전자공학에 관련된 질문은 질문게시판에서만 작성 가능합니다. 스태프 19-01-15 9622
공지 사이트 이용 안내댓글[24] master 17-10-29 29601
질문 atmega128 서보모터와 초음파센서 새글 tmiae 12:53 3
질문 avr compiler 종류 질문입니다!댓글[3] 새글 민준싸 01:16 21
질문 컴퓨터 usb연결시 정상 작동하나 9V건전지 외부전원 연결 시 작동하지 않는 문제댓글[3] 이미지새글첨부파일 보겐을운용 22-05-19 77
질문 아두이노 dac 연결댓글[3] 이미지새글첨부파일 kodory 22-05-19 24
질문 아두이노 millis ->atmega128에서 사용하고 싶습니다. 새글 akmong413 22-05-19 23
답변 답변글 답변 : 아두이노 millis ->atmega128에서 사용하고 싶습니다. 새글 master 22-05-19 26
질문 아트메가 모터드라이브와 초음파 센서 연동 질문입니다댓글[1] 새글 123424135123q 22-05-19 24
질문 스텝모터 드라이버 선정 질문드립니다. 새글 아흐흑 22-05-18 26
답변 답변글 답변 : 스텝모터 드라이버 선정 질문드립니다.댓글[1] 이미지새글 master 22-05-19 22
질문 아두이노로 모터+드라이버 제어댓글[6] 새글 모토 22-05-18 40
질문 온도센서로 서보모터 제어 코딩댓글[1] 새글 진수네1조 22-05-18 43
질문 라즈베리파이 웹캠 데이터 아두이노 전송 (초보)댓글[1] 전자과 22-05-17 45
질문 아두이노 코딩 도와주세요 (초음파센서와 금속감지센서로 서보모터 제어하기) 이현주 22-05-17 72
답변 답변글 답변 : 아두이노 코딩 도와주세요 (초음파센서와 금속감지센서로 서보모터 제어하기) master 22-05-18 121
질문 아두이노 우노 2개와 앱인벤터끼리의 블루투스 통신 방법댓글[3] 이미지첨부파일 pyoleo 22-05-17 92
질문 졸업작품 첨부파일 ejdog 22-05-16 86
질문 PCB의 커넥터 연결관련 이슈같은데.. 원인을 정확히 모르겠습니다.댓글[2] 이미지 설계못해서개털림 22-05-16 72
질문 STM32F767 사용중인데 발열이 발생합니다.댓글[5] 존클라프 22-05-16 69
질문 리니어 레일 거리 조절댓글[1] 면수 22-05-16 59
질문 아두이노 심전도 센서 BPM 계산댓글[3] 쥬쥬 22-05-16 82
질문 아두이노 서로 다른 전압을 가진 부품 제어 이미지 chovo 22-05-16 54
질문 앱인벤터 질문입니다.댓글[2] 이미지 귀끠우유 22-05-16 66
질문 아두이노 우노끼리 블루투스 통신댓글[1] 첨부파일 pyoleo 22-05-16 70
질문 마이크로 받은 입력을 주파수로 변경댓글[3] 생늧판출 22-05-16 44
질문 while문 안 if문 빠져나오는 방법 kyho3855 22-05-15 39
답변 답변글 답변 : while문 안 if문 빠져나오는 방법댓글[1] master 22-05-16 47
질문 초음파센서로 속도구하기(코드 합치는법) 쥰니 22-05-15 70
답변 답변글 답변 : 초음파센서로 속도구하기(코드 합치는법)댓글[1] master 22-05-16 68
게시물 검색

2022년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2021년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2020년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2019년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
2018년 1월 2월 3월 4월 5월 6월 7월 8월 9월 10월 11월 12월
Privacy Policy
MCU BASIC ⓒ 2020
모바일버전으로보기