함수(정의부와 선언부, 함수의 유형)/분할 컴파일/Source Insight

 

#1. 함수의 분할(정의부와 선언부)

 

학습목표 - 함수를 정의부와 선언부로 나누어 코딩할 수 있다.

 

지난 시간에 레지스터/전처리 언어/함수/매크로에 관한 수업을 했다.

 

오늘은 함수에 대해 더 배우고 분할 컴파일에 대해서도 배워본다.

 

//잘게 분산된 일을 합치는 작업을 linker에서 수행한다.

 

실습 - 함수의 분리 저장)

 

Led of/off 함수를 분리하여 저장한 후 실행시켜본다.

 

 

 

실습 - 함수의 정의와 선언)

 

smart는 정의부/main은 선언부

#2. 분할 컴파일과 Source Insight 기본 조작

 

학습목표

 

다수의 분할된 코드를 컴파일하여 실행할 수 있다.

Source Insight의 기본 조작법을 숙지 한다.

 

작업을 조각낸 후 이를 합치는 과정을 link라고 한다. 팀 프로젝트에서 조각난 작업을 합치기 전 단계의 작업 결과물은 obj 파일들이 된다.

 

형성된 obj파일들이 제대로 되었는지 확인해 봐야 한다. 이를 테스트하는 것을 컴파일(compile)만 수행한다고 한다. 이 때 명령어는 “cl /c *.c"이다. //*는 파일명

 

이와 같이 작성된 코드를 따로 따로 컴파일하는 것을 분할 컴파일이라고 한다.

 

소스가 많아질 경우 수 많은 코드를 제어하는 것이 힘들어진다. 이때 우리는 도구를 사용한다! -> Source Insight

 

Source Insight 실행 후!

Project -> New Project Settings

소스가 있는 폴더를 지정




원하는 소스파일을 더블클릭하여 창에 올려준다.

줄번호를 표시해 주거나 글자 크기 등을 조절해주기 위해 option -> document option

 

옵션 설정 후 적용하기 위해서는 위의 창에서 'yes'를 입력해 주어야 한다.







Ctrl + Shift + f(찾기 단축기) //범위 지정된 단어가 바로 찾아진다.

 

Case Sensitive - 대소문자 구분

 

Project Wide - 모든 프로젝트에서 단어 찾기

 


위에 버튼을 통해 찾은 단어를 자유롭게 이동가능.

 

메모장에 사용자가 코딩 시 필요로 하는 기능 등을 추가해준 것이 Source Insight이다. 프로그램 작성 및 수정에는 도움이 되지만 자체 컴파일 기능은 없다.

#3. 분할 컴파일

 

학습목표 - 분할 컴파일을 활용하여 팀별 코딩을 할 수 있다.

 

팀으로 코딩해보자!

 

 

#4. 함수(함수의 유형)

 

학습목표 - 인자와 반환 값의 유무에 따른 함수의 형태를 구분하고 활용할 수 있다.

 

AVR로 가서!

Source Insight에서 창 내에 있는 변수들은 색깔로 표시된다.

 

수정하게 되면 노란색으로 변한다.

 

저장되면 채도가 낮은 연두색으로 바뀐다.

 

//수업 중에 언급하지 않으면 코딩은 메모장에서 한다!

 

분할 컴파일은 잘 정리해 놓자!

 

p/212 예제

 

함수 값에 인자/인수를 넣을 때 만들어준 함수의 형식에 맞게 넣어주어야 한다.

 

함수 속에서만 생성되었다가 함수가 끝나면 사라지는 변수를 지역변수라고 한다.

 

함수의 가장 복잡한 형태가 반환 값도 있고 인자도 있는 4번 형태이다.

 

인수가 없는 경우에는 void를 생략해도 된다. 하지만 컴파일러에 따라 꼼꼼하게 볼 수도 있으니 void를 넣어주는 습관을 기르자.

 

p/214 예제

 

 

 

반응형
Posted by newind2000
Busan IT/디지털 제어2015. 3. 9. 13:26

디지털 제어 - 논리게이트의 개념과 특성

 

학습목표

 

논리 게이트와 논리 레벨의 기본 개념의 대해 알아본다.

기본 논리 게이트들의 동작 원리 및 진리표, 게이트 기호들에 대해 알아본다.

정논리와 부논리에 대해 알아본다.

게이트들의 전기적인 특성에 대해 알아본다.

 

//드모르간 정리에 의해 And회로 없이도 NAND회로가 작성가능하다!

 

기본 게이트(AND, OR, NOT)를 활용하여 다양한 논리회로를 만들 수 있다.

 

지난 시간에 했던 내용들을 다시 한번 살펴보자!

 

TTLCMOS 논리 레벨 정의영역

 

 

정의되지 않은 영역에 의해 논리회로에 신호가 들어가는 것을 막기 위해 pull-up 또는 pull-down을 사용해 준다.

//정의되지 않은 영역에서의 신호와 정확한 입출력에 의한 신호의 결과물 차이는 확연하다 ex) 다이오드 불 밝기의 차이

 












//드모르간 법칙에 대한 학습이 필요하다! 논리게이트는 입력 값에 따른 출력 값이 같으면 모양은 신경 쓰지 않는다.





XOR2bit 덧셈에 사용되는 논리회로이다.

//IC 7486

 




//IC 74266 - 별로 많이 안 쓰인다.





게이트에 입력이 들어가서 출력이 되기까지 걸리는 시간을 반응시간이라고 한다.




//시간차가 없는 LS/HC시리즈를 가장 많이 사용한다.

 

 

입력 범위에 대해서는 증폭회로를 사용하여 입력값을 조절해 줄 수 있음으로 입력전압 범위가 출력전압 범위보다 크다.

 



 

출력전류가 어디로 가느냐에 따라서,

칩의 아웃풋 = 싱크전류, 그라운드 = 소스전류



불확실한 신호가 입력되는 것을 막기 위해 사용.



 

// BJT(Bipolar Junction Transistor),MOS(Metal Oxide Semi-conduct)

 

 

논리회로를 이용하여 반가산기를 만들어 보자 -> 프로테우스로 만들어본다.



 

전가산기를 만들어 보자!

 
















 

 

 

 

반응형
Posted by newind2000