1.for문의 동작원리
- for문의 원형은 그림과 같이 for(시작조건;종결조건;조건 변화식)이다.
- for문을 수행하면 가장먼저 "시작조건"을 수행하고 "종결조건"을 평가한 후에 "종결조건을 만족시 수행할 명령문을 수행한다.
- 그 후 조건을 변화시킨 후 "종결조건"을 검사하여 참인경우 계속적으로 명령문을 수행하고 거짓인 경우 for문을 벗어난다.
2.while문을 for문으로
- while문의 변수초기화가 for문의 "시작조건"에 해당된다.
- while문의 조건식이 for문의 "종결조건"에 해당된다.
- while문의 iCnt = iCnt+1(증감식)이 for문의 조건 변화식에 해당된다.
3.volatile의 용도
-
첫번째 메모장의 소스코드는 의도적으로 명령을 지연시킬 프로그램에 사용된다.
-
그러나 CPU가 번거로운 과정을 생략하여 "시작조건"의 실행과 조건 변화식의 마지막 결과값만 검토하여 최적화 시킨다.
-
하지만 아래의 volatile(휘발성의)을 사용하면 cpu의 최적화를 막아 원래 소스의 의도대로 지연되는 프로그램을 생성가능하다.
4.union(공용체)
-
그림에서 보듯이 구조체는 각각의 변수를 다른주소에 각각 할당하는 반면
-
공용체는 하나의 주소를 공유한다
4-1.실제로 한 공간을 같이 공유하는지 확인
-
결과값을 보면 obj.A와 obj.C가 int형으로 4byte 같은 값을
-
obj.B가 short형으로 2byte 56 78 값을
-
obj.D가 char형으로 1byte 78값을 가지고 있으므로 하나의 공간을 공용으로 사용하고 있음을 알 수 있다.
-
또한 obj.B와 obj.D를 통해 cpu가 메모리에 저장을 Little Endian으로 하고있는것 을 알 수 있다.
5.함수의 형(type) 찾기
void smart()
{
printf("안녕하세요");
}
-
함수의 원형 추출 void smart();
-
함수명을 (*)로 변경
-
void (*) ( )가 함수의 형이다.
5-1.연습해보기
pritnf함수의 원형 int printf(const char*,const char*);
-
원형 추출은 했으므로
-
printf -> (*)으로
-
int (*) (const char*,const char*)이 함수의 형(type)
5-2.함수의 포인터 선언방법
-
일반 포인터 선언방법 : int *변수명 , char *변수명 [ 변수의 형 *변수명 ]
-
함수 포인터 선언방법: int (*fP) (const char*,const char*) [반환형 (*함수명) (인자) ]
6.아트메가 미리 맛보기
용어
마이크로 프로세스 = CPU , 마이크로 컨트롤러 = 메인보드
마이크로 프로세스는 CPU의 기능을 한다고 보면되고 마이크로 컨트롤러는 메인보드의 기능을 한다고 생각하면 된다. CPU만으로는 어떤간단한 것도 할수 없지만 메인보드(코어,메모리 등등)여러개의 기능을 가진 장치들이 고성능은 아니지만 함께 존재하므로 자체만으로 간단한 프로그램을 실행가능하다. 그래서 마이크로 컨트롤러는 공장 자동화에 최적화된 장치이다.
도체(Conductor)와 반도체(Semi Conductor)
도체는 전기가 잘 통하는 물질 반도체는 한쪽 방향으로는 전기가 흐르지만 반대 방향으로는 전기가 흐르지 않는 물질을 뜻함 대표적인 반도체로는 다이오드가 있다.
WinAVR과 AVR studio
WinAVR은 AVR에서 돌아가도록 만드는 일종의 컴파일러이고, AVR studio는 컴파일된 파일을 AVR통역을 해주는 기능이다. WinAVR과 AVR studio를 설치했다면 "개발환경을 구축했다"라고 말할 수 있겠다.
RISC와 CISC
RISC - 사용은 어려우나 프로그래밍하기는 쉬운... ex) 휴대폰
CISC - 사용은 쉬우나 프로그래밍하기는 어려운... ex)컴퓨터
'코스웨어 > 16년 스마트컨트롤러' 카테고리의 다른 글
20160308_김도관_업무일지_제어문 (4) | 2016.03.09 |
---|---|
20160308-이보원 제어언어(그 밖의 기초 학습) (3) | 2016.03.09 |
20160308_조재찬_업무일지_그 밖의 기초 학습 (3) | 2016.03.08 |
2016.03.08 업무일지 노태경 (0) | 2016.03.08 |
20160308_장진웅_업무일지_그밖의기초학습 (4) | 2016.03.08 |
20160308_양준우_업무일지_그밖의기초학습 (4) | 2016.03.08 |
20160308_최기영_업무일지 (2) | 2016.03.08 |
2016.03.07 이종찬 업무일지 (6) | 2016.03.08 |