ArrayDeque 덱(Deque) 1. double ended queue 2. 큐의 전단과 후단에서 삽입, 삭제 모두 가능 3. 스택과 큐의 연산을 모두 가짐 Deque ADT 1. 객체 : 전단과 후단을 통한 접근을 허용하는 요소들의 모음 2. 연산 : addFront(e), addRear(e), deleteFront(), deleteRear(), isEmpty(), isFull(), getFront(), getRear(), display() 학습/자료구조&알고리즘 2021.10.08
상속 기본 개념 상속(Inheritance) 1. 클래스 사이에서 상속관계 정의(객체 사이에 상속관계 없음) 2. 기본 클래스의 속성과 기능을 파생 클래스에 물려 주는 것 3. 기본 클래스에서 파생 클래스로 갈수록 개념 구체화 4. 다중 상속을 통해 클래스의 재사용성을 높일 수 있음 상속의 목적과 장점 1. 간결한 클래스 작성 2. 클래스 간의 계층적 분류 / 관리의 용이함 3. 클래스의 재사용과 확장을 통한 소프트웨어 생산성 향상 학습/C++ 2021.10.07
시리얼통신 - 단방향 통신 시리얼 통신 - 컴퓨터와 컴퓨터/주변기기 간에 데이터를 주고 받을 때 비트단위로 데이터를 주고 받는 방식 - 전송 속도는 병렬보다 느리지만 구현이 간단하고 효율이 좋음 대표적인 시리얼 통신 - RS232C / USART - I2C(TWI) - SPI - USB ATmega128의 USART 레지스터 - UDRn : USART I/0 데이터 레지스터 - UCSRnA : 송/수신 동작을 제어하거나 저장하는 레지스터 - UCSRnB : 송/수신 동작 제어, 송/수신 상태 저장 - UCSRnC : 동기/비동기, 데이터 길이, 패리티 비트, stop비트 등 결정 - UBRRnH/L : 통신 속도를 설정, 16비트 중 12비트만 사용 학습/ATmega128 2021.10.05
Serial Class / String Class 예제 분석 #4 Serial.readString( ) : 문자열 시리얼 데이터를 읽어옴 Serial.Timeout( ) : 시리얼 데이터를 입력받는 time의 최댓값 설정(디폴트값 : 1000ms) 학습/Arduino 2021.10.01
Serial Class / String Class 예제 분석 #3 write( ) 1. 값을 그대로 받아옴 2. 아스키코드 변환하여 시리얼 모니터로 출력 print( ) 1. 값을 아스키 코드로 변환하여 받아옴 2. 다시 아스키코드 변환하여 시리얼 모니터로 출력 학습/Arduino 2021.10.01
Serial Class / String Class 예제 분석 #2 Q1. id에 문자가 하나씩 저장되는가? Q2. Serial.parseInt는 어디서 값을 읽어오는가? 에 대한 궁금증이 생겨 디버깅해본 결과 A1. id에 단일문자가 아스키코드로 변환되어 저장된다. A2. Serial은 하나의 객체임을 생각해야하고, 입력된 값은 Serial객체에 저장되어있음 학습/Arduino 2021.10.01
Serial Class / String Class 예제 해석 #1 Serial.begin( ) : 시리얼 통신을 사용하기 위해 속도를 설정하는 함수 Serial.println( ) : 데이터 출력 함수, print( )와 달리 출력 후 줄바꿈 기능이 있음 Serial.available( ) : 입력된 값의 바이트 수를 리턴하는 함수, 데이터 입력 유무 확인해 유용 Serial.readStringUntil('terminator') : terminator character를 발견하거나 setTimeout( ) 디폴트값 1s를 넘을때까지의 값만 입력받음 write( ) 와 print( )의 차이 write( ) - 아스키 값으로 변환하지 않고 PC 또는 장치 그대로 데이터 전송 - PC는 다시 그 값을 아스키코드 변환하여 시리얼 모니터에 출력 - ex) write("75").. 학습/Arduino 2021.10.01
외부 인터럽트 #3 * 구현 목표 1. 스위치1을 한 번 누르면 START, 다시 누르면 STOP를 반복하는 1/100s 스톱워치(FND로 시간 출력) 2. 스위치2를 누르면 시간 초기화 * 제한 사항 1. 타이머가 STOP된 상태에서도 스톱워치의 시간은 카운트하고 있어야 함 2. 시간을 카운트 하면 안되는 두 가지 상황 - 보드에 코드가 처음 컴파일된 상황 - SW2를 눌러 타이머를 초기화시키고, 아무런 동작도 취하지 않은 상황 학습/ATmega128 2021.09.30
접근 지정자와 inline함수 * 접근 지정자 1. privated: 동일한 클래스의 멤버 함수에서만 접근 가능 2. public: 모든 클래스에서 접근 가능 3. protected: 클래스 자신과 상속받은 자식클래스에서만 접근 가능 * inline함수 - 기존 함수의 단점(함수 호출에 부가적인 시간이 소요됨(오버헤드))의 개선책 - inline함수는 함수를 호출하는 곳에 inline함수코드를 확장 삽입함 - 오버헤드 없음 - 실행 속도 개선 - 컴파일러에 의해 적용 여부 결정됨(복잡한 함수는 수용불가) - 클래스 선언부에 구현된 멤버함수는 컴파일러에 의해 자동으로 inline처리 - 매크로와 비교 (1) 매크로 가. 전처리기가 컴파일 전 일괄 치환 나. 타입체크를 무시하고 무조건 치환 다. 유지보수가 어렵고 namespace를 무시.. 학습/C++ 2021.09.30