분류 전체보기

Develop/C, C++

[C/C++] 동적할당(Dynamic Memory Allocation)

이번 포스팅에서 우리가 배워볼 것은 다음과 같다. 메모리 구성과 영역별로 저장되는 데이터의 유형 동적 할당 메모리 동적 메모리 사용 절차 C언어 : 동적 메모리 할당 연산자 malloc, free C언어 : calloc 함수 C++ : 동적 메모리 할당 - new, delete C++ : 스마트 포인터 객체의 동적 생성 1. 메모리 구성과 영역별로 저장되는 데이터의 유형 우리 컴퓨터에 있는 메모리에는 다음과 같이 구성되어 있다. 코드 영역 : 실행할 프로그램의 코드가 저장되는 메모리 공간. 힙 영역 : 동적 메모리 할당하는 장소.(이번 동적 할당 파트에서 중요한 부분이다) 스택 영역 : 함수 수행시에 메모리 할당이 일어나고 함수를 빠져 나가면 소멸되는 영역 데이터 영역 : 전역변수와 static 변수가 ..

Develop/C, C++

[C/C++] 문자열(String)

이번 포스팅에서 우리가 배워볼 것은 다음과 같다. 문자열 NULL 문자 문자 배열의 초기화 방법 종류 문자열 예제 문자 입출력 라이브러리 문자 처리 라이브러리 함수 & 예제 string 클래스 1. 문자열 문자열(string) : 문자들이 여러 개 모인 것 "A" "Hello World!" "변수 score의 값은 %d입니다." 문자열 상수 "Hello World" "Hong" "string!#$" "guest123" 문자열 변수 char형 배열 2. NULL 문자 NULL 문자는 문자열의 끝을 나타낸다. "SEOUL" => S / E / O / U / L \n 문자열은 어디서 종료되는지 알 수가 없으므로 표시를 해주어야 한다. 3. 문자 배열의 초기화 방법 종류 문자 배열 원소들을 중괄호 안에 넣어주는..

Develop/C, C++

[C, C++] 포인터(Pointer)

이번 포스팅에서 우리가 배워볼 것은 다음과 같다. 포인터 포인터 변수의 선언과 사용 예 포인터 증감 연산 포인터는 어디에서 사용되는가? 포인터 사용시 주의점 : nullptr 포인터와 배열 심화 : 포인터 구조 확인 1. 포인터 포인터 변수는 메모리의 주소를 저장하는 변수를 의미한다. Pointer 변수 선언 data_type *variable_name; 또는 data_type* variable_name; 최근에 푸른 색을 더 선호하는 편이다. 저렇게 선언을 하면 컴퓨터는 변수의 주소를 받을 준비가 되어 있다고 생각한다. Pointer 연산 포인터 연산 변수의 주소를 계산하는 연산자[주소 연산자] : & 변수의 메모리 주소 값 : &variable 시작하는 위치의 주소를 계산한다! 아래 사진에서 numb..

Develop/C, C++

[C/C++] 함수(Function)

이번 포스팅에서 우리가 배워볼 것은 다음과 같다. 함수의 개념 & 형태 함수의 필요성 함수 유형 함수에서의 return 문장 함수의 매개변수 디폴트 인수(default argument) 함수 호출에서의 매개변수 전달 방법 함수 원형(prototype) 함수와 변수의 속성 변수의 속성 지역 변수(local variable) 정적 변수(static variable) 전역 변수(global variable) 중복함수 인라인 함수 함수 예제 풀기 최댓값 구하는 함수 정수의 제곱 값을 구하는 함수 swap() 함수 만들기 정수, 실수, 문자를 모두 출력할 수 있는 print() 함수를 중복 함수로 정의하고 사용해보자. 디폴트 매개 변수 실습하기 1. 함수의 개념 & 형태 함수(function)란 특정한 작업을 수..

Develop/Arduino Uno

[아두이노 우노] SoftwareSerial

1. SoftwareSerial 소프트웨어 시리얼은 소프트웨어로 구현된 시리얼 통신 기능을 의미한다. 아두이노 우노의 소프트웨어 시리얼은 SoftwareSerial 라이브러리로 통해 제공되는데, 이를 이용하면 디지털 핀을 가상의 시리얼 포트로 설정하여 해당 핀을 이용해 시리얼 통신을 수행할 수 있다. 즉, 가상으로 UART 포트를 만들어준다는 것이다. 소프트웨어 방식으로 UART 포트를 가상으로 만든 것이기 때문에 복수 개 이상의 가상 포트 생성 가능하다. 주로 하드웨어 시리얼이 이미 다른 목적으로 사용 중이거나 추가적인 시리얼 통신이 필요한 경우에 소프트웨어 시리얼을 활용할 수 있다. SoftwareSerial로 만든 가상 포트(들)로부터 수신한 데이터를 하나의 버퍼에 모으게 된다. 따라서 복수 개의 ..

Develop/Arduino Uno

[아두이노 우노] delay() 함수 없이 주기적인 작업 실행하기 - millis() 함수

타이머를 사용하여 delay() 함수 없이 주기적인 작업을 실행해보자. 이번에는 millis() 함수를 사용할 예정이다. millis() : 코드(스케치)가 실행된 이후의 경과 시간을 millisecond 단위로 리턴해주는 함수 int rLedPin = 13; int gLedPin = 8; int buttonPin = 2; unsigned long int preTime = 0; unsigned long int interval = 1000; int ledState = LOW; void setup() { pinMode(rLedPin, OUTPUT); pinMode(gLedPin, OUTPUT); pinMode(buttonPin, INPUT); } void loop(){ unsigned long int cur..

Develop/Arduino Uno

[아두이노 우노] 내부 인터럽트(타이머 인터럽트) 실습하기

타이머를 사용하여 delay() 함수 없이 주기적인 작업을 실행해보자. 이번에 내부 인터럽트를 사용할 예정이다. #include int rLedPin = 13; int gLedPin = 8; int buttonPin = 2; int rLedState = LOW; int gLedState = LOW; void setup() { pinMode(rLedPin, OUTPUT); pinMode(gLedPin, OUTPUT); pinMode(buttonPin, INPUT); // 내부 인터럽트(타이머 인터럽트) Timer1.initialize(1000000);// 10의 6승 -> 1초 : us 단위 Timer1.attachInterrupt(blink); // -> 1초마다 CPU에게 내부 인터럽트, ISR 함수 ..

Develop/Arduino Uno

[아두이노 우노] I2C 통신 (TWI 통신)

1. I2C 통신(Inter-Integrated Circuit) 아두이노에서는 I2C 통신을 TWI(Two Wire Inteface)라고 부른다. 이것은 근거리에서 소자와 소자 사이의 통신을 위해 개발된 프로토콜로서, 마이크크로컨트롤러와 여러 디바이스 간의 통신을 할 수 있는 통신 프로토콜이다. 2. I2C(TWI) 통신의 주요 특징 위에서 I2C의 개념 내용을 다른 말로 하면, 소자와 소자 사이의 통신을 위해 SDA, SCL 핀을 이용하는 통신 방식이다. 여기서 SDA 핀은 데이터를 처리하고, SCL핀은 마스터의 clock을 동기화하기 위한 선이다. 또한 127개의 주소값을 사용할 수 있다. 1. 2개의 신호선 SDA (Serial Data) (A4) : 데이터 선 - I2C 통신에서 데이터를 전송하는..

JuniTech
'분류 전체보기' 카테고리의 글 목록 (3 Page)