728x90

2024/10 56

Pull-up / Pull-down이란?

Pull-up 저항이란?Pull-up 저항은 입력 핀의 기본 상태를 HIGH(논리 1)로 유지하는 저항이다. 입력 핀이 연결되지 않거나 부동 상태가 될 때 핀의 전압은 불확실하게 변할 수 있다. 이러한 불확실성을 방지하기 위해 Pull-up 저항을 사용하여 입력 핀을 기본적으로 전원에 연결함으로써 안정적인 HIGH 상태를 유지하게 된다. 연결 방식 : Pull-up 저항은 입력 핀과 VCC 사이에 연결된다. 이렇게 되면 핀이 외부로부터 신호를 받지 않는 한, 저항을 통해 전류가 흐르면서 항상 HIGH 상태를 유지한다.용도 : 스위치나 버튼이 열려 있을 때 입력 핀이 **부동 상태(floating)**가 되는 것을 방지한다. 예를 들어, 버튼을 누르지 않은 경우 기본적으로 입력 핀이 HIGH로 유지되며, ..

전기•전자 2024.10.31

히스테리시스(Hysteresis)란?

히스테리시스는 물리학, 공학, 시스템 제어 등 다양한 분야에서 사용되는 개념으로, 어떤 시스템의 상태 변화에 있어 이전 상태에 의존하는 현상이다. 입력 신호에 따른 출력의 지연이나, 상태 전환의 임계점에 차이를 두는 것을 의미한다. 쉽게 말해, 시스템이 특정 조건에서 변화할 때 일정한 차이를 두어 반복적인 작동을 막고 안정성을 높이는 기술이다. 히스테리시스의 필요성히스테리시스가 필요한 이유는 시스템의 안정성을 유지하고 불필요한 작동을 줄이기 위함이다. 예를 들어, 온도 제어 시스템에서 목표 온도를 22도로 설정했다고 하자. 만약 히스테리시스 없이 온도 조절을 한다면 온도가 22도를 약간만 넘거나 부족해도 조절 장치가 빈번하게 커졌다 꺼지게 될 것이다. 이는 시스템의 부하를 줄 뿐 아니라, 에너지 효율도 ..

전기•전자 2024.10.30

[C언어] 메모리 누수(Memory Leak)란?

메모리 누수란 프로그램이 실행되는 동안 동적으로 할당된 메모리(malloc(), calloc(), realloc() 등)를 사용한 후 필요가 없어졌음에도 불구하고 해제하지 않은 경우에 발생한다. 메모리 누수 발생 원인1. malloc()이나 calloc() 같은 함수로 메모리를 할당하고 사용 후 해제(free())하지 않은 경우 메모리 누수가 발생한다.int *arr = (int *)malloc(100 * sizeof(int));// free() 호출이 없어 누수 발생 2. 동적 메모리 할당 후, 해당 메모리를 가리키던 포인터를 덮어쓰거나 변경하면 원래의 메모리 주소에 접근할 수 없게 된다.int *ptr = (int *)malloc(10 * sizeof(int));ptr = NULL; // 할당된 메모..

C언어 2024.10.29

[C언어] 래퍼 함수(Wrapper Function)란?

래퍼 함수는 기존의 함수나 기능을 감싸서(Warp) 제공하는 함수이다. 래퍼 함수는 이매 존재하는 함수를 감싸는 방식으로 추가적인 기능을 추가하거나, 특정 함수 호출을 간단하게 만들어 코드의 재사용성을 높이는 역할을 한다. 이를 통해 코드의 가독성, 유지보수성, 그리고 이식성을 향상시킬 수 있다. // 파일에 데이터를 쓰기 위한 코드 (래퍼 함수 사용 전)FILE* file = fopen("data.txt", "w");if (file != NULL) { fprintf(file, "Hello World\n"); fclose(file);} else { perror("File open failed");} // 파일에 데이터를 쓰기 위한 래퍼 함수 (래퍼 함수 사용 후)void writeFile..

C언어 2024.10.28

[C언어] extern란?

extern 키워드는 다른 파일에서 선언된 변수나 함수가 존재하며, 그것은 현재 파일에서도 사용할 수 있도록 알리는 역할을 한다. 이를 통해 변수나 함수가 여러 파일에서 공유될 수 있도록 한다. 즉, 외부에서 선언된 변수나 함수를 참조하게 만드는 것이다. A.c#include int sharedVariable = 10; // 전역 변수 정의void printMessage() { // 함수 정의 printf("Hello from A.c\n");} B.c#include extern int sharedVariable; // 외부 변수 선언extern void printMessage(); // 외부 함수 선언int main() { printf("Value of sharedVariable: %d\n",..

C언어 2024.10.28

저항이란?

저항은 전기적인 흐름을 방해하는 소자이다. 저항이란 단어 그대로 전류의 흐름을 제한하거나 막는 역할은 한다. 전류가 회로를 통해 흐를 때, 저항이 높으면 전류의 흐름이 어려워지고, 저항이 낮으면 전류가 쉽게 흐른다. 저항의 크기 옴(Ω)이라는 단위로 측정된다. 저항의 종류1. 고정저항(Fixed Resistor) : 일정한 저항 값을 가지는 저항이다.2. 가변저항(Variable Resistor) : 저항 값을 조절할 수 있는 저항이다.3. NTC 및 PTC 서미스터(Thermistor) : 온도가 따라 저항 값이 변하는 저항이다. 저항은 회로에서 전류의 흐름을 제어하고 제한하는 역할을 한다. 만약 저항이 없다면, 과도한 전류로 인해 회로에 손상이 발생할 수 있다. 또한 전압 분배의 역할도 한다. 전압을..

전기•전자 2024.10.25

연산 증폭기(Op-Amp)

작은 신호를 크게 만들어주는 전자 부품이다. 예를 들어, 아주 작은 소리를 더 크게 만들어 주는 확대경 같은 역할을 한다. 연산 증폭기두 개의 입력 간 전압 차이를 크게 증폭하는 고이득 전압 증폭기이다. 이상적인 연산 증폭기는 무한대의 개방 루프 이득(Open Loop Gain), 무한대의 입력 임피던스, 0의 출력 임피던스를 가지며, 다양한 아날로그 연산을 수행할 수 있다.비반전 입력(+) : 이 입력에 신호가 들어오면 출력은 입력 신호와 정비례하며 증폭된다.반전 입력(-) : 이 입력에 신호가 들어오면 출력은 입력 신호와 반비례하며 증폭된다. 출력 : 두 입력 간 전압 차이를 증폭 신호가 출력된다.연산 증폭기는 보통 비반적 입력, 반전 입력, 그리고 출력 핀을 가지며, 이와에도 전원 공급 핀(V+, ..

전기•전자 2024.10.24

루프 언롤링(Loop Unrolling)이란?

컴퓨터 프로그램의 성능을 최적화하는 중요한 기법 중 하나이다. 반복문을 수동으로 변경하여 반복 횟수를 줄이고, 코드의 성능을 높이는 방법이다. 주로 오버헤드를 줄이고 캐시 효율을 높이는 데 사용된다. 다음과 같은 반복문이 있을 때for (int i = 0; i  루프 언롤링을 적용하면 아래와 같다.for (int i = 0; i 위와 같이 루프 언롤링하면 반복 횟수가 줄어들어 오버헤드 감소가 가능하다.

CS 2024.10.23

[C언어] 세미콜론(;)을 사용하는 이유

C언어에서 세미콜론은 명령어의 끝을 나타내는 중요한 역할을 한다. 명령어마다 세미콜론을 사용하여 끝을 명확히 구분해야 컴파일러가 코드의 각 부분을 제대로 이해할 수 있다. 그렇다면 왜 하필 세미콜론일까. 역사적 전통C언어는 ALGOL 계열의 언어에서 많은 영향을 받았다. ALGOL은 세미콜론을 문장의 끝을 나타내는 기호로 사용했다. 이후 C의 전신인 B 언어와 Pascal 같은 언어들도 세미콜론을 명령어 구분 기호로 채택했다. C언어도 이러한 전통을 계승하며 세미콜론을 구분 기호로 사용하게 되었다.  또 다른 이유들로 가독성을 높이기 위해, 문장의 구분을 명확히 하기 위해, 다른 기호와 충돌을 피하기 위해 등이 있지만 가장 큰 이유는 역사적 전통인 것 같다. 세미콜론은 항상 최선의 선택은 아닐 수 있다...

C언어 2024.10.23
728x90