[전기공학실험3] 예비3 - LCD 제어
- 최초 등록일
- 2002.12.25
- 최종 저작일
- 2002.12
- 20페이지/ MS 워드
- 가격 1,000원
소개글
전기공학실험3 (ARM7 코어 프로그래밍)
서울대학교 전기공학부
성원용 교수님 강좌
2002년 2학기
정답이 아닐 수 있으니 참고만 하세요.
목차
1. 목표
(1) LCD 화면에 텍스트(영어)를 띄운다(이 때 영어의 ASCII font set를 이용한다). 이를 위해서 LCD controller를 setting하고 적절한 메모리 번지에 텍스트의 비트맵 데이터를 올려 놓아야 한다.
(2) LCD 화면에 원과 직선 등의 그래프를 그린다. 다음의 C function을 만든다.
- void dispchar(short row, short col, char c);
설명 ; row, column으로 주어진 픽셀에 캐릭터를 찍는다.
(3) 자기가 만든 커서(8*8 pixel size)를 표시한다.
(4) 키 입력에 따라서 (4개의 방향)에 이 커서가 움직여야 한다.
(5) 키가 있는 어떤 위치에서 A 키를 누르면, 그 키가 가리키고 있던 텍스트의 해당 단어가 반전되도록 한다.
(6) 소스 코드
(7) 글자 출력
(8) interrupt
2. 예비 보고 사항
위의 내용을 잘 이해하고, text data를 화면에 표시하는 S/W를 제작한다. 만들어진 소프트웨어는 다음 기능을 가진다.
(1) Text data는 영문으로 된 1kByte 이상의 데이터이고
(2) 4개의 방향키로 커서를 움직인다.
(3) 커서가 아래/위쪽 끝에 닿으면 text를 16pixel씩 scroll한다.
(4) 키는 timer interrupt를 이용하여 scan한다.
(5) SW8 키를 누르면 커서 아래의 단어를 반전시킨다.
(6) 원이나 직선을 만드는 효율적인 알고리즘 연구
본문내용
#define CLKVAL_MONO (13)//60Mhz,CLKVAL=19 ->78.6Hz
#define CLKVAL_G4 (9)//40Mhz,CLKVAL=9 ->110Hz
#define CLKVAL_G16 (10)//40Mhz,CLKVAL=10 ->101Hz
//9 ->112Hz
//#define CLKVAL_COLOR (7)//40Mhz
#define CLKVAL_COLOR (10)//60Mhz
unsigned int (*frameBuffer1)[SCR_XSIZE/32 ];
#define MVAL_USED 0
void Lcd_Init(void)
{
rLCDCON1=(0)|(1<<5)|(MVAL_USED<<7)|(0x3<<8)|(0x3<<10)|(CLKVAL_MONO<<12);
//disable,4B_SNGL_SCAN,WDLY=8clk,WLH=8clk,
rLCDCON2=(LINEVAL)|(HOZVAL<<10)|(10<<21);
//LINEBLANK=10 (without any calculation)
rLCDSADDR1=(0x0<<27)|(((unsigned int)frameBuffer1>>22)<<21 )|M5D((unsigned
int)frameBuffer1>>1);
//monochrome,LCDBANK,LCDBASEU
rLCDSADDR2=M5D((((unsigned int)frameBuffer1+(SCR_XSIZE*LCD_YSIZE/8))>>1))|
(MVAL<<21);
rLCDSADDR3=(LCD_XSIZE/16)|(((SCR_XSIZE-LCD_XSIZE)/16)<<9 );
rLCDCON1=(1)|(1<<5)|(MVAL_USED<<7)|(0x3<<8)|(0x3<<10)|(CLKVAL_MONO<<12);
//enable,4B_SNGL_SCAN,WDLY=8clk,WLH=8clk,
}
참고 자료
3학년 실험 – 서울대학교 전기공학부
3학년 실험 매뉴얼 – 서울대학교 전기공학부
http://www.cs.unc.edu/~hoff/projects/comp235/bresline/perform0.html
http://member.hkbn.net/~winnyefanho/research/MEA.pdf