본문 바로가기
반응형

분류 전체보기299

Raspberry Pi Pico 저전력 모드 함수 정리 Raspberry Pi Pico 저전력 모드 함수 정리1. Raspberry Pi Pico는 다양한 저전력 모드를 지원해 배터리 수명 연장에 유리함2. 아래는 라즈베리 파이 피코의 RP2040 SDK 내에서 사용할 수 있는 주요 전력 관리 함수들이다.1. sleep_ms(uint32_t ms) 함수#include "pico/stdlib.h"sleep_ms(1000); // 1초 동안 슬립설명: 지정된 밀리초 동안 시스템을 슬립 상태로 전환함용도: 짧은 대기 시간을 줄 때 주로 사용하며, 특정 작업 대기 시 전력 소모를 줄이는 데 유용함  2. sleep_us(uint32_t us) 함수#include "pico/stdlib.h"sleep_us(100); // 100 마이크로초 동안 슬립 설명: 지정된 마.. 2024. 11. 10.
라즈베리파이 피코(Raspberry Pi Pico)에서의 딥슬립 라즈베리파이 피코(Raspberry Pi Pico)에서의 딥슬립라즈베리파이 피코(Raspberry Pi Pico)는 RP2040 마이크로컨트롤러 칩을 사용전력 절감을 위한 다양한 기능을 지원하지만 딥슬립 모드는 없음RP2040은 라이트슬립이나 아이들 상태와 같이 전력을 줄이는 저전력 모드를 제공함1. 라즈베리파이 피코에서는 다음과 같은 전력 절감 기능을 주로 사용함 1. 라이트슬립 (lightsleep)CPU와 주변 장치 일부가 중지되며, 타이머나 인터럽트를 통해 깨어날 수 있음저전력 상태에서 빠르게 깨어나야 할 때 주로 사용 2. 아이들 모드 (idle)CPU가 유휴 상태로 진입해 전력 소모를 줄임프로세서가 필요할 때 즉시 다시 활성화됨반복 대기나 짧은 대기 시간에 적합 3. 클럭 및 주변 장치 제어필.. 2024. 11. 9.
[GitHub] GitHub Actions 정리 GitHub Actions란?1. GitHub Actions는 코드의 자동화된 워크플로우를 생성하고 관리할 수 있는 기능으로, 주로 CI/CD(Continuous Integration and Continuous Deployment) 파이프라인에 사용한다. 2. GitHub Actions는 코드 작성부터 배포까지 자동화할 수 있는 강력한 도구로 코드 품질향과 배포 효율성을 높이는데 유용하게 사용한다.  1. GitHub Actions 기본 개념1. GitHub Actions는 코드 저장소에서 발생하는 이벤트(예. push, pull request, schedule 등)을 트리거로 하여 특정 작업(Job)을 자동으로 수행하도록 구성할 수 있다. 2. 일반적인 사용 예로는 자동 테스트, 빌드 배포 등이 있다... 2024. 11. 6.
[ESP32] 주요 딥슬립함수 ESP32에서 주요 딥슬립함수ESP32에서 제공하는 딥슬립 관련 함수는 esp_sleep.h 라이브러리에 포함되어 있으며, Arduino와 ESP-IDF 환경에서 사용할 수 있다.  1. esp_deep_sleep_start()  - 딥슬립모드를 시작하는 함수이다. - 호출 시 ESP32가 딥슬립 상태에 들어가며, 이후에는 리셋되기 전까지 실행이 멈춘다. 사용 예제esp_deep_sleep_start(); 2. esp_sleep_enable_timer_wakeup(uint64_t time_in_us) - 타이머를 통해 깨어나는 기능을 설정한다. - 설정된 시간이 지나면 ESP32가 자동으로 깨어난다. - time_in_us는 마이크로초(µs) 단위로 지정한다.사용 예제esp_sleep_enable_tim.. 2024. 11. 4.
[Git] 커밋 취소, 되돌리기 Git 명령어 reset을 사용하여 commit 되돌리기git reset은 Git에서 커밋을 되돌리는 방법이다. soft  reset은 파일의 변경 내용은 그대로 보존하는 방법이다.특정 커밋으로 되돌리면서 커밋 기록은 삭제하고, 변경 사항은 작업 디렉터리에 남겨 두고 싶을 때 사용한다.이는 주로 커밋을 잘못했거나, 커밋 메시지를 수정하고 싶을 때 유용하다.--hard, --mixed 옵션을 사용한 reset 방법도 있으며 --hard같은 경우에는 사용에 주의를 해야한다.사용 예제 1. 마지막 커밋을 리셋하고 싶을 때 사용한다. git reset --soft HEAD~1- 이 명령은 마지막 커밋을 되돌리고 해당 커밋의 변경 사항은 스테이징된 상태로 남겨둔다.- 이후 git commit --amend를 통해.. 2024. 10. 28.
[C++] #define, constexpr, PROGEM 비교 #define vs constexpr vs PROGEM#define, constexpr, 그리고 PROGMEM은 C++ 및 임베디드 프로그래밍에서 상수를 정의하고 메모리를 관리하는 데 사용되는 방법이다.이들은 각각 상수 정의, 컴파일 타임 평가, 메모리 최적화 측면에서 차이점이 있다.임베디드 환경에서의 어떤 상황에서 가장 적합한지 정리한다.비교 요약(표)특징#defineconstexprPROGEM타입 안전성낮음높음보통컴파일 타임컴파틸 타임 치환컴파일 타임 평가컴파일 타임 설정메모리 사용텍스트 치환 (작음)플래시/레지스터 (작음) 플래시 메모리 (RAM 절약)스코프관리없음 (전역적)있음 (지역적 가능)전역적읽기 속도빠름빠름느림 (플래시 읽기 필요)코드 복잡성낮음보통높음제한된 임베디드 환경에서의 추천1. 작.. 2024. 10. 27.
[C++] PROGEM PROGMEM이란?PROGMEM은 AVR 마이크로컨트롤러(예: Arduino)에서 RAM이 아닌 플래시 메모리에 상수 데이터를 저장하기 위해 사용되는 키워드이다.예시const uint8_t myArray[4] PROGMEM = {1, 2, 3, 4}; 장점1. RAM 절약- PROGMEM을 사용하면 상수 데이터를 플래시 메모리에 저장하므로, RAM 사용량을 크게 줄일 수 있다. - 이는 RAM이 제한적인 임베디드 환경에서 매우 유리하다. 2. 큰 데이터 구조 저장 가능 - 큰 배열이나 문자열과 같은 데이터 구조를 플래시 메모리에 저장할 수 있어, 메모리 자원을 효율적으로 사용할 수 있다.단점1. 읽기 복잡성 -  PROGMEM으로 저장된 값은 직접 읽을 수 없으며, pgm_read_* 함수를 사용해야 하.. 2024. 10. 26.
[C++] constexpr constexpr이란?constexpr은 C++11부터 도입된 키워드로, 컴파일 타임에 상수 값을 평가하여 정의할 수 있게 한다.예시constexpr TickType_t US_DELAY = 250; 장점1. 타입 안전성- constexpr은 타입이 있는 상수를 정의하므로, 컴파일 타임에 타입 검사를 할 수 있다.- 이는 코드의 안정성과 디버깅의 용이성을 높인다. 2. 컴파일 타임 평가 - 컴파일 타임에 값이 결정되므로, 최적화가 잘 이루어진다. - 상수 값은 실행 중 메모리를 차지하지 않고, 플래시 메모리나 레지스터에 직접 저장될 수 있다. 3. 스코프 관리 가능 - constexpr은 변수가 선언된 스코프 내에서만 유효하므로, 전역 변수와 지역 변수를 효과적으로 관리할 수 있다. 단점1. 복잡한 .. 2024. 10. 25.
[C++] #define #define이란?#define은 전처리기 지시어로, 컴파일러가 코드를 컴파일하기 전에 상수를 정의하거나 간단한 매크로를 사용할 수 있게 한다.예시#define US_DELAY 250장점1. 단순성 - 매우 간단하게 상수를 정의할 수 있으며, 복잡한 구문이 필요하지 않다. 2. 코드 크기 감소 - 컴파일러가 #define을 텍스트 치환으로 처리하기 때문에, 코드 크기를 줄이는 데 유리할 수 있다. 3. 어디서든 사용 가능 - 전처리기 단계에서 치환되므로, 어디서든 동일한 값을 사용할 수 있다.단점1. 타입 안전성 부족 - #define은 타입을 지정하지 않으므로, 잘못된 타입으로 사용될 가능성이 있다. - 예를 들어, #define으로 정의된 상수는 타입이 없기 때문에, 타입 검사나 오류 메시지가 부족할.. 2024. 10. 24.
다형성(Polymorphism) 다형성(Polymorphism)이란?1. 객체 지향 프로그래밍의 중요한 개념 중 하나이다.2. 동일한 인터페이스나 메서드 이름으로 다양한 구현을 사용할 수 있는 능력을 의미한다.3. 다형성은 주로 오버로딩, 오버라이딩 두 가지 형태로 나타나고 아래와 같다. 2024.10.21 - [소프트웨어 공학 용어 정리] - 오버로딩(Overloading), 오버라이딩(Overriding) 오버로딩(Overloading), 오버라이딩(Overriding)오버로딩(Overloading) vs 오버라이딩(Overriding)오버로딩(Overloading)과 오버라이딩(Overriding)은 객체 지향 프로그래밍에서 중요한 개념이다.오버로딩 (Overloading)1. 정의같은 이름의 메서드를 여러 개 정kfdd6630... 2024. 10. 23.
반응형