본문 바로가기
코스웨어/14년 스마트컨트롤러

20140422서상우_수업보고서

by 알 수 없는 사용자 2014. 4. 22.
728x90
반응형


동영상 재생이 안돼서 링크 겁니다.

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을 프리 


728x90