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

TODAY2,200 TOTAL3,320,512
사이트 이용안내
Login▼/회원가입
최신글보기 질문게시판 기술자료 동영상강좌

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


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

페이지 정보

작성자 승후 작성일2018-01-16 14:18 조회18,516회 댓글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

조회수 18,516

승후님의 댓글

승후 작성일

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

master님의 댓글

master 작성일

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

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

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

MCU, AVR, 아두이노 등 전자공학에 관련된 질문을 무료회원가입 후 작성해주시면 전문가가 답변해드립니다.
ATMEGA128PWMLED초음파
아두이노AVR블루투스LCD
UART모터적외선ATMEGA
전체 스위치 센서
질문게시판 목록
제목 작성자 작성일 조회
답변 답변글 답변2 : 16비트 레지스터명 사용 여부를 어떻게 알 수 있을까요?댓글[5] 이미지 master 18-02-07 39736
답변 답변글 답변3 : atmega2560에 관하여 질문드립니다.(비트마스크)댓글[2] 이미지 master 18-02-07 17089
답변 답변글 답변4 : atmega2560에 관하여 질문드립니다.(타이머 모드)댓글[1] master 18-02-07 12409
질문 EEPROM 사용법에 관해 질문 드립니다.댓글[2] 몽규 18-02-05 18934
답변 답변글 답변 : EEPROM 사용법에 관해 질문 드립니다.댓글[1] master 18-02-05 17789
질문 인터럽트와 기초 C언어에 대한 질문 드립니다. 몽규 18-02-04 10451
답변 답변글 답변 : 인터럽트와 기초 C언어에 대한 질문 드립니다.댓글[1] master 18-02-04 14283
질문 8051 인터럽트 관련해서 질문드립니다. 27315co 18-02-01 11317
답변 답변글 답변 : 8051 인터럽트 관련해서 질문드립니다.댓글[1] master 18-02-01 13790
답변 답변글 답변2 : 8051 인터럽트 관련해서 질문드립니다. master 18-02-01 11293
답변 답변글 답변3 : 8051 인터럽트 관련해서 질문드립니다. master 18-02-01 11294
답변 답변글 답변4 : 8051 인터럽트 관련해서 질문드립니다. master 18-02-02 10534
질문 stm32f103 LED 밝기 제어 질문 드립니다.댓글[6] 몽규 18-01-30 57925
질문 임배디드 공부에 대하여 질문드립니다. mcu홀릭 18-01-25 10557
답변 답변글 답변 : 임베디드 공부에 대하여 질문드립니다. master 18-01-25 11968
답변 답변글 답변 : 임베디드 공부에 대하여 질문드립니다.(추가) master 18-01-25 10557
질문 avr 에러 관련 문의드립니다.댓글[1] 이미지첨부파일 도도리 18-01-23 18864
답변 답변글 답변 : avr 에러 관련 문의드립니다.댓글[2] 첨부파일 도도리 18-01-23 18916
답변 답변글 답변 : 답변 : avr 에러 관련 문의드립니다.댓글[1] 이미지 master 18-01-23 15286
질문 스텝모터 위치제어 질문 드립니다. 몽규 18-01-22 14912
답변 답변글 답변 : 스텝모터 위치제어 질문 드립니다.댓글[5] master 18-01-22 51938
질문 stm32f103 질문 드립니다.댓글[8] 몽규 18-01-19 89911
답변 답변글 답변 : stm32f103 질문 드립니다.댓글[1] master 18-01-19 13630
질문 심박센서 bpm측정 관련 문의드립니다.댓글[4] 이미지 묵묵 18-01-18 40841
답변 답변글 답변 : 심박센서 bpm측정 관련 문의드립니다.댓글[7] 이미지 master 18-01-18 62076
질문 [공지] 질문글은 삭제하지 못합니다.댓글[1] master 18-01-16 15935
질문 [ATmega128] MPU6050 mahony 필터에 질문드립니다.댓글[5] 이미지 Filter 18-01-16 51361
질문 AVR 자이로센서사용댓글[5] 하하루다 18-01-16 51904
현재글 TFT 관련 질문입니다.댓글[2] 승후 18-01-16 18517
질문 atmega128 rfid 서보모터 제어댓글[3] 전자정해찬 18-01-16 34549
게시물 검색

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
모바일버전으로보기