20140422서상우_수업보고서
동영상 재생이 안돼서 링크 겁니다.↓
http://scotstiner.tistory.com/entry/20140422%EC%88%98%EC%97%85%EB%B3%B4%EA%B3%A0%EC%84%9C
LCD초기화를 최적화 해보자!
(LCD_inst함수 생성)
LDC의 명령어는 portC의 값만 바뀌므로, portC에 인자를 넣어줄수 있는
함수생성
(헤더에 명령어 값 입력)
헤더에 portC에 들어갈 각각의 명령어의 값에대해 매크로를 지정해준다.
(LCD_init함수)
LCD_inst 함수에 명령어 각각의 매크로를 연결해 준다.
(실행)
-끝-
LCD_Data 함수도 최적화 해보자!
함수 인자값을 받아서 portC에 넣어준다.
main에서 LCD_Data에 아스키코드의 문자 값들을 넣어줘 보자.
-끝-
문자열 출력을 함 해보자!!
(LCD_Str함수)
문자열의 맨 압자리 주소를 포인트로 받아서
주소를 1바이트씩(+1) 이동해서 LCD_Data함수로 출력.
(LCD_Str함수호출)
-끝-
의미있는 숫자를 출력해보자!!
(LCD_Num함수)
숫자를 unsigned char 형태의 인자로 받는다.
배열인 ucBuff를 선언하고 자리수를 정해준다.
100,10,1자리의 숫자를 각각 문자화 해서 LCD_Str함수로 출력해준다.
(LCD_Num함수호출)
-끝-
ddram
(ddram 매크로 설정)
(ddram 매크로 호출)
출력할 위치를 바꿀수 있다.
ddram의 명령어와 출력주소를 합친다는 의미에서 or로 표기
(INST_SET_DDRAM | 0X00) = (1000 0000 + 0000 0000)
-끝-
링크드 리스트
정열함수
(검색단계)
(37열)stpRear과 널값을 비교하여 반복문으로 전채검색
(39열)stpRear과 stpNew의 Data값을 비교해서 삽입할 위치 판단.
(중간또는 뒷열 삽입)
(48열)stpRear과 Head를 비교하여 첫열이 아닌경우를 분별(그림2)참조
(50~51열)stpNew의 앞과뒤를 stpFront와 stpRear로 연결 해준다.
(앞열 삽입)
(57~58열)stpNew를 Head앞에 붙여주고 Head로 바꿔준다.
Delete 함수
(검색단계)
(70열)stpRear과 널값을 비교하여 반복문으로 전채검색
(72열)stpRear의 Data값과 cData값을 비교해서 지울 위치 판단.
(76~77열)stpfront에 stpRear를 넣어주고, stpRear의 Next값을 stpRear에 넣음.
(링크가 없을때)
(80열)stpRear의 값이 널이 됄때까지 반복문을 돌려도 같은 Data값을 찾지못하면 링크가 없음.
(82열)main으로 Head를 바로 반환.
(중간, 끝 삭제)
(85열)stpRear과 Head가 다르면 반복문이 돌아 갔단 말이므로 중간이나 끝열에 지울 Data가 있다고 판단.
(87열)stpRear의 Next를 stpFront의 Next에 넣어서 연결한다.
(앞 삭제)
(91열)stpRear이 Head와 같으면 지울대상이 맨 앞에 있다는 말이므로
(93열)Head의 Next를 Head로 바꿔준다.
(검색된 영역 삭제)
(95열)stpRear을 프리