반응형

전체 글 116

배열

◎배열◎ 배열이란? -배열이란 같은 데이터형을 가진 변수들의 연속적인 집합이라고 할수있으며 배열은 많은양의 데이터를 처리하는 경우 유용하게 사용할수 있다. 또 배열은 메모리가 연속적이기 때문에 배열의 시작주소를 알면 모든 배열 요소를 접근 할 수 있다. 한마디로 배열은 연속적인 메모리의 할당이라는것임. -배열선언에 필요한 세가지 1) 배열 길이 : 배열을 구성하는 변수의 개수 (반드시 상수를 사용) 2) 배열 요소 자료형 : 배열을 구성하는 변수의 자료형 3) 배열 이름 : 배열에 접근할 때 사용되는 이름 * 배열 요소의 위치를 표현 : 인덱스(index) (구조) int형으로 array라는 이름을 선언해주고 int형 데이터 6개를 저장할 수 있는 메모리공간을 4byte씩 총 24byte만큼 할당해주소~..

C 2010.06.18

[BSP]업무일지-20100614 - 임종현

C++ 객체지향 프로그래밍 객체지향 프로그래밍이란? - 프로그램을 만드는 방법중 하나이다. 만약 자동차를 예로 들면 규격화된 부품을 조립해서 완성된 차를 만드는 공정이라고 생각하면 된다. 윈도우 프로그램중 하나인 그림판을 비교해보면 "엔진 = 선긋기", "지우기 = 라이트" "글쓰기 = 범퍼" , "색 = 문짝" 등으로 비유할수 있다. 개발자 혼자 기능을 다 만드는 것이 아니라 각각의 기능을 별로도 제작하여 한곳에서 조립하는 것이다. 여기서 각각의 기능들이 바로 객체인 것이다. 장점 ◎개발자는 하나의 부품 즉, 객체에만 신경을 쓰면된다. ◎결합하여 기능에 문제가 생기더라도 문제가 있는 기능만 교체할수 있다. ◎다른 프로그램을 만들때에도 사용할수 있다. 하지만 이러한 장점에도 중요한 제약 사항이 있다. 객..

School Study 2010.06.14

[BSP]업무일지-20100610-임종현

오전. 함수오버로딩-(p.360) overloading 은 여러함수들이 동일한 이름을 사용할수 있는 기능이다. 인자의type은 같아도 인자만 다르거나 인자만 바꾸어 사용할수 있다는것. 오버로딩의 예제. -동적메모리할당. -static 전역변수나 static지역변수가 할당되는 공간이다. -heap은 동적으로 메모리를 할당하는 공간. -stack은 함수내 지역변수들이 저장되는 공간이다. 동적메모리 할당은 컴퓨터로 부터 메모리를 얻어 오는것을 이야기 한다. 프로그램이 실행되는 도중 메모리의크기에 따라 할당용량이 결정되고 할당하게되고 메모리를 해제하는 시점을 자유로이 조절할수도 있다. 예제) ------------------------------------------------- #include using st..

School Study 2010.06.10

[BSP]업무일지 - 20100609 -임종현

오전 C++ 과제의 연장! - const란? const는 값을 변경할수 없는 상수로 만드는 함수이다. 예를들어 변수 선언을한다고 하면 int num = 10; 이렇게 선언을 할텐데 const를 사용하여 선언을 하게된면 const int num = 10; 이렇게 된다. 이것은 num이라는 변수에 10을 넣고 이후 값을 변경할수 없게 하겠다는 뜻이다. --- 과제 - 오후 배열의 연장~ 먼저 배열은 통째로 옮길수가 없다는것을 알자. 이유는 크기때문이다. 크기가 어느정도까지 커질수 있을지 몰르기때문에 전달이 불가하며 대신에 배열은 놔두고 시작주소만 전달한다. 버블정렬~ 버블정렬 함수 p212 배열을 이용한 정렬은 여러가지 데이터 값을 오름차순이나 내림차순으로 크기에 따라 순서화 시키는 것을 말한다. 두 인접한..

School Study 2010.06.09

[BSP]업무일지 - 20100607 - 임종현

오늘은? call by value 와 call by reference에 대하여 알아본다. 먼저 간단 하게 해석하자면.. 먼저.. call by value - 인자값을 복사하여 사용함으로 함수가 리턴된 후에는 수정한 해당값이 적용되지 않는다. 즉 호출한 함수에 영향을 미치지 않는다는것이다. 다음은 call by reference - 주소값을 받아와 처리함으로 수정된 결과하나하나가 다 기록된다. 매게변수의 값을 넘기는 것이 아니라, 그 값을 저장하고 있는 메모리의 주소를 넘기게 된다. 즉, 어느 위치에 있는 값을 참조해서 처리하라는 의미.. 그러므로 호출하는 함수에서는 그 값을 저장한 변수의 포인터 값을 넘겨야 하며 당연히 호출되는 함수에서는 포인터 변수로 선언되어야 하는것이다.. p.174 예문 swap(..

School Study 2010.06.07

[BPS]업무일지-20100526-임종현

오전수업 어제부터 했던 실습. ---------------------------------------------------------- #define PORTC (*(volatile unsigned char *)0x35) //출력 설정 #define DDRC (*(volatile unsigned char *)0x34) //입출력 설정 #define PINC (*(volatile unsigned char *)0x33) #define DDRF (*(volatile unsigned char *)0x61) #define PORTF (*(volatile unsigned char *)0x62) //입출력 설정 int main(void) { DDRC = 0x00; //LED연결 PORTC = 0x00; DDRF = ..

School Study 2010.05.26

[BSP]업무일지-20100525-임종현

오전수업 실습1 ----------------------------------------------------- #define PORTC (*(volatile unsigned int*)0x35) //출력 설정 #define DDRC (*(volatile unsigned int*)0x34) //입출력 설정 int main(void) { int flag = 0; int flag1 = 1000; unsigned int us = 0; //10^-6 unsigned int ms = 0; //10^-3 PORTC = 0x00; //PORT의 초기화 while(1) //반복되는 코드가 들어가는 부분의 시작 { us=us+1; if(us>=1000) { ms=ms+1; us=0; } if(ms>=flag1) { if(..

School Study 2010.05.25

[BSP]업무일지 - 2005024 - 임종현

오전수업 DK128을 이용하여 다이오드(LED)에 불이 들어오게 하는 실습. while문을 이용하여 프로그램을 코딩해봄. FOR문과 같은 반복문이지만 더 간단하다고 생각하면 되겠다. 다음은 역시 반복문을 이용하여 좀더 새밀하게 짠것이다. if - else문을 넣어 다이오드가 깜빡거릴수 있게 하고 us-ms을 이용하여 깜빡이는 속도를 조절했다. * flag - Flag 란 TRUE, FALSE 로 값을 저장하여 여러가지 용도로 사용되는 것을 말함. DDR : 데이터 방향 설정(Data Direction Register) 해당포트를 입력용으로 쓴건지 출력용으로 쓸건지를 설정하는 것이다. 쉽게 말하자면 MCU 부품의 각 다리가 입력용으로 쓰이는지 출력용으로 쓰이는지 설정하는 것이다. DDR에서 입력or출력으로..

School Study 2010.05.24

[BSP]업무일지 -20100519-임종현

오전수업 DK128보드 사진의 외쪽부분이 메인보드이다. 메인보드에서는 연산과 제어를 담당하게 되어있으며 오른쪽부분의 확장보드는 입출력을 담당하게 된다. 카운터와 다이오드 신호를 줄수 있는 스위치등이 있으며 메인보드에 프로그램은 Write해주면 주면 제어할수 있게된다. 프로그램은 페러럴포트나 시리얼포트를 연결해 전송 하는데 전송된 프로그램은 MCU인 ATmega128에서 받아 확장보드를 제어하게 된다. 전송을 하거나 컴퓨터와 연결을 하기위해서는 프로그램이 필요한데 winAVR과 EEPROM Wirter인 ponyplog2000이 필요하다. winAVR을 설치하고 나면 Mfile 프로그램이 같이 설치되는데 프로그램을 이용하여 Makefile을 생성할 수 있다. 본 파일을 이용해 Project note 프로그..

School Study 2010.05.19
반응형