본문 바로가기

분류 전체보기894

오실로스코프 프로브, 1:1 프로브와 10:1 프로브 패시브 프로브와 액티브 프로브 오실로스코프 프로브는 크게 패시브 프로브와(수동 프로브) 액티브 프로브(능동 프로브)로 분류할 수 있다. 두 프로브 유형의 차이는 독립적인 전원 공급이 필요한가 여부인데 그중에서 수동 프로브는 전원 공급 없이도 작동하는 가장 기본적인 프로브로 비용이 저렴하고 내구성이 좋다는 장점을 가진다. 보통 오실로스코프를 구입하면 패시브 프로브가 세트로 포함되는데 대표적으로 1:1, 10:1 프로브가 있다.  1:1 프로브1x 프로브는 입력 신호를 아무런 감쇠 없이 그대로 오실로스코프에 전달한다. 1x 프로브는 민감도가 높으며 작은 레벨의 신호를 원 신호 그대로 보고자 할 때 사용한다. 한편 1x 프로브는 10x 프로브에 비해 상대적으로 입력 임피던스가 낮아서 측정 대상 회로에 더 큰 .. 2024. 5. 22.
병원 방문기록 조회 방법 병원 방문기록 조회 방법  국민건강보험 홈페이지 접속 https://www.nhis.or.kr/nhis/index.do 국민건강보험이벤트 1 / 8www.nhis.or.kr   로그인 > 건강iN > 나의 평생건강정보 > 진료 내용 > 보안문자 입력 후 확인 최근 2년간의 병원 및 약국 방문 기록을 알 수 있다. 그리고 '진료내용' 밑의 '검진내용'에서는 공단건강검진과 국가암건진의 검진내용을 알 수 있다. 2024. 5. 21.
C++ ] leetCode 85 - Maximal Rectangle 리트코드 85번 문제 Given a rows x cols binary matrix filled with 0's and 1's, find the largest rectangle containing only 1's and return its area.   Example 1: Input: matrix = [["1","0","1","0","0"],["1","0","1","1","1"],["1","1","1","1","1"],["1","0","0","1","0"]]Output: 6Explanation: The maximal rectangle is shown in the above picture.  Example 2: Input: matrix = [["0"]]Output: 0  Example 3: Input: ma.. 2024. 5. 20.
마우스 커서 포함 화면 캡처하는 법 윈도우의 기본 화면캡처 기능을 사용하면 마우스 커서가 포함되지 않은채로 캡처되는데 픽픽(PicPick)이라는 무료 툴을 사용하면 마우스 커서 포함 화면을 캡처할 수 있다.  다운로드 링크: https://picpick.net/download/ 픽픽(PicPick) - 올인원 그래픽 디자인 도구 (화면 캡처 및 녹화, 이미지 편집, 색상 추출, 눈금자,픽픽(PicPick) - 올인원 그래픽 디자인 도구 (화면 캡처 및 녹화, 이미지 편집, 색상 추출, 눈금자, 각도기, 십자선 등)picpick.net   픽픽 실행 후 파일 > 옵션 캡쳐 > 마우스 커서를 캡처된 이미지에 포함 체크    이후 픽픽을 통해 캡처하면 되는데 단축키는 마찬가지로 옵션창에서 확인할 수 있고 원하는 단축키로 변경할 수 도 있다. 2024. 5. 19.
C++ ] leetCode 84 - Largest Rectangle in Histogram 리트코드 84번 문제  Given an array of integers heights representing the histogram's bar height where the width of each bar is 1, return the area of the largest rectangle in the histogram.  Example 1:Input: heights = [2,1,5,6,2,3]Output: 10Explanation: The above is a histogram where width of each bar is 1. The largest rectangle is shown in the red area, which has an area = 10 units.  Example 2:Input: he.. 2024. 5. 18.
윈도우 11 ] 한글 입력 도중 마지막 문자 지워지는 문제 해결 방법 Win + I 키로 윈도우 설정 켬 > 시간 및 언어  언어 및 지역     언어 > 한국어 > ... > 언어 옵션     키보드 > Microsoft 입력기 > ... > 키보드 옵션      호환성 > 이전 버전의 Microsoft IME > 켬 2024. 5. 16.
C++ ] leetCode 42 - Trapping Rain Water 리트코드 42번 문제 Given n non-negative integers representing an elevation map where the width of each bar is 1, compute how much water it can trap after raining. Example 1: Input: height = [0,1,0,2,1,0,1,3,2,1,2,1] Output: 6 Explanation: The above elevation map (black section) is represented by array [0,1,0,2,1,0,1,3,2,1,2,1]. In this case, 6 units of rain water (blue section) are being trapped. Examp.. 2024. 5. 14.
MAX7424 5th-Order Lowpass Switched-Capacitor Filters MAX7424은 5차 로우패스 필터 IC로 Corner frequency를 1Hz에서 45kHz 사이로 제어할 수 있으며 Switched-Capacitor 방식을 사용한다.   Switched-Capacitor Filter(SCF)란? 커패시터의 전하를 고속으로 연결됐다 끊어지는 스위치로 제어함으로써 저항과 동일한 동작을 하게 하여, 기존의 능동 필터에서 저항 부분을 구성하는 것이라고 한다. 참고: http://magazine.hellot.net/magz/article/articleDetail.do?flag=all&showType=showType1&articleId=ARTI_000000000035002&articleAllListSortType=sort_1&page=1&selectYearMonth=2009.. 2024. 5. 13.
C++ ] std::condition_variable 사용법 std::condition_variable은 C++에서 스레드 간의 동기화를 위해 사용되는 매커니즘 중 하나로, 한 스레드가 특정 조건이 충족될 때까지 대기하도록 하고, 다른 스레드가 그 조건을 충족시켰을 때 대기 중인 스레드를 깨우는 방식으로 사용한다. std::condition_variable은 주로 std::mutex와 함께 사용되며, 뮤텍스의 소유권을 관리하기 위해 std::unique_lock 클래스와 결합하여 사용된다. std::condition_variable 사용 패턴 스레드는 std::unique_lock를 사용하여 뮤텍스를 잠근다. 스레드는 std::condition_variable의 대기 함수(wait, wait_for, wait_until)를 호출하여 특정 조건이 충족될 때까지 대기.. 2024. 5. 12.
LTSpice 설치 및 간단 사용법 LTSpice 는 Analog Devices 사에서 무료로 배포하는 전자회로 시뮬레이터다. 다운로드 링크 :https://www.analog.com/en/lp/002/tools/ltspice-simulator-kr.html      간단 사용법 Ctrl + N 을 눌러 New Schemtaic을 만든다.       P를 눌러 부품검색창을 켤 수 있다.      대표적인 부품들은 단축키를 누른 뒤 화면의 원하는 위치에 배치시킬 수 있다.     배치 도중 Ctrl + R을 누르면 부품을 90도 씩 회전할 수 있다.    W 단축키를 눌러 회로를 연결할 수 있다.       부품을 우클릭하여 속성을 편집할 수 있다.      N을 눌러 측정할 곳에 Label을 붙일 수 있다.   Del 키를 눌러 부품을 삭.. 2024. 5. 11.
C++ ] leetCode 937 - Reorder Data in Log Files 리트코드 937번 문제 You are given an array of logs. Each log is a space-delimited string of words, where the first word is the identifier. There are two types of logs: Letter-logs: All words (except the identifier) consist of lowercase English letters. Digit-logs: All words (except the identifier) consist of digits. Reorder these logs so that: The letter-logs come before all digit-logs. The letter-logs.. 2024. 5. 10.
오실로스코프 1M Ohm, 50 Ohm 설정에 관해 오실로스코프 1M Ohm, 50 Ohm 입력 설정에 관해.. 측정장치의 입력은 입력 임피던스가 높을수록 측정장치에 영향을 주지 않는다. 따라서 오실로스코프의 경우 특별한 경우가 아니면 디폴트로 1MΩ으로 설정해둔다. 여기서 특별한 경우란 수백 MHz의 대역폭 신호를 측정하는 경우 또는 신호의 반사를 막기 위해 임피던스 매칭이 필요한 경우이다. 즉, 일반적인 측정에서는 오실로스코프는 1MΩ 입력으로 설정하고, 수백 MHz의 고주파 대역의 신호를 측정하는 경우 또는 주파수 특정이 중요한 경우에는 오실로스코프를 50Ω 입력으로 설정하고 50Ω BNC 케이블을 사용해 측정한다. 다음 그림은 출력 임피던스가 낮고 상승시간이 빠른 에지 신호를 오실로스코프의 입력 임피던스를 1MΩ(왼쪽) 및 50Ω(오른쪽)으로 각각.. 2024. 5. 9.
C++ ] leetCode 143 - Reorder List 리트코드 143번 문제 You are given the head of a singly linked-list. The list can be represented as: L0 → L1 → … → Ln - 1 → Ln Reorder the list to be on the following form: L0 → Ln → L1 → Ln - 1 → L2 → Ln - 2 → … You may not modify the values in the list's nodes. Only nodes themselves may be changed. Example 1: Input: head = [1,2,3,4] Output: [1,4,2,3] Example 2: Input: head = [1,2,3,4,5] Output: [1,5,2.. 2024. 5. 8.
AD5292BRUZ-100, Digital Potentiometer 데이터시트 분석 AD5292BRUZ-100은 Analog Devices사의 디지털 포텐셔미터 IC이다. SPI 인터페이스로 제어가 가능하며 내부에 최대 20번까지 쓰기 가능한 20-TP memory가 있어서 칩의 전원이 공급되거나 리셋이 발생할 때 자동으로 설정할 저항값을 써둘 수 있다. 블락 다이어그램을 보면 결국 시리얼 인터페이스로 RADC 레지스터에 원하는 설정값을 써서 A와 B사이에 있는 전위차계의 Wiper 위치를 조정하는 원리이다.     뒤에 붙는 모델명에 따라 조절가능한 저항값과 해상도가 달라지는데 AD5292BRUZ-100 모델은 0Ω부터 최대 100 kΩ까지 조정할 수 있고, 해상도는 1024단계로 설정된다. 즉, 97.65625Ω 단계로 저항 값을 정밀하게 설정할 수 있다.       참고로 전위차계.. 2024. 5. 7.
C++ ] leetCode 1195 - Fizz Buzz Multithreaded 리트코드 1195번 문제 You have the four functions: printFizz that prints the word "fizz" to the console, printBuzz that prints the word "buzz" to the console, printFizzBuzz that prints the word "fizzbuzz" to the console, and printNumber that prints a given integer to the console. You are given an instance of the class FizzBuzz that has four functions: fizz, buzz, fizzbuzz and number. The same instance o.. 2024. 5. 6.
BH2227FV, D/A Converters 데이터시트 분석 BH2227FV는 Rohm사의 DAC 칩으로 MCU의 DAC 채널이 모자른 경우 사용할 수 있다. 8bit 해상도를 가지고 R-2R-type D/A Convert를 4채널 가진다. R-2R-type DAC에 대해선 밑에서 설명하겠다.2개의 독립적인 파워소스를 사용할 수 있으며 최적화된 파워소스는 3V/5V인데 2.7V에서 5.5V까지는 허용된다.built-in 리셋 기능이 있어서 power up 동안 모든 채널이 LOW 출력하는게 보장된다.3선식 serial interface를 사용한다.           R-2R-type D/A Convert란? Binary Weighted DAC라고도 하는데 모든 디지털 비트에 대해 R과 그 2배인 2R 이렇게 두 개의 저항으로 구성되며, 비트 입력이 많을 수록 즉,.. 2024. 5. 5.
C++ ] std::unique_lock과 std::lock_guard의 차이 std::unique_lock과 std::lock_guard의 차이 std::unique_lock과 std::lock_guard 모두 스코프 기반의 락 관리를 제공한다. 객체가 스코프에 진입할 때 자원을 획득(락을 잠금)하고, 스코프를 벗어날 때 소멸자를 호출해 자동으로 자원을 해제(락을 해제)하는 방식이다. 사용자가 { }를 사용하여 직접 스코프를 지정하는 패턴으로 사용할 수도 있다. 둘의 차이점은 다음과 같다. std::lock_guard : 생성될 때 자동으로 락을 획득하고 소멸될 때 락을 해제한다. 도중에 수동으로 락을 잠그거나 풀 수 있는 기능을 제공하지 않는다. std::unique_lock : 생성될 때 자동으로 락을 획득하고 소멸될 때 락을 해제하며 lock(), unlock() 메소드를 .. 2024. 5. 4.
ADG201A, Analog Switch IC 데이터시트 분석 ADG201A는 Analog Devices 사에서 나온 LC2MOS Quad SPST Switches이다.칩에는 4개의 SPST(Single Pole Single Throw) 스위치가 존재하고 각각 독립적으로 제어가 가능하여 ±15V의 아날로그 신호까지 통과시킬 수 있다. Functional Block Diagram을 보면 INx핀으로 디지털 로직 컨트롤을 통해 SPST 스위치를 제어하고 Dx와 Sx간의 경로를 쇼트시켰다 오픈시켰다 한다. ADG201A시리즈의 경우 Low Active로 0이면 스위치 ON, 1이면 스위치 OFF이다. D는 Drain, S는 Source의 약자같은데 실제로 아날로그 신호를 어느쪽에서 어느쪽으로 라우팅할 지는 응용에 따라 달라질 수 있을 것 같다 신호를 통과시킨다는게 중요하.. 2024. 5. 3.
Visual Studio ] C4996 에러 해결 Visual Studio에서 C4996 에러가 나는 이유는? MSVC(Microsoft Visual C++ Compiler)는 보안 및 안전성과 관련된 이유(주로 버퍼 오버플로우 같은 보안 취약점 이슈)로 특정 함수들을 deprecated(사용 중단) 처리하였는데, 사용자가 이러한 비권장 함수를 사용할 때 C4966 경고를 발생시키고 더 안전한 대안인 _s가 붙은 함수를 선택하도록 유도하고 있다. 해결방법 1 : 해당 소스파일에서 C4996 경고를 끄는 법 소스파일 최상단에 "#define _CRT_SECURE_NO_WARNINGS" 를 추가한다. #define _CRT_SECURE_NO_WARNINGS 해결방법 2 : 해당 프로젝트에서 C4996 경고를 끄는 법 프로젝트 우클릭 > 속성 모든 구성, 모.. 2024. 5. 2.
TMS320F28388D ] 다중 ADC 사용시 변환 순서와 동기 다중 ADC 사용시 변환 순서와 동기에 대해 알아보는데 의식의 흐름순으로 작성되었다.  먼저 사전 설명을 하자면 TMS320F28388D 337-Ball ZWT 패키지는 Temp Sensor를 제외하고 총 24채널의 ADC 입력을 처리할 수 있다. 근데 그중에 3개(ADCINA0, ADCINA1, ADCINB1) 채널은 DAC 용도로도 사용된다. 예를 들어 DAC 3채널을 쓰면 ADC는 21채널만 쓸 수 있는거다. DSP의 ADC 모듈은 총 4개가 있다. ADC-A, ADC-B, ADC-C, ADC-D. 그리고 Temp Sensor는 DSP에 내장되어 있고 ADC-A 모듈과 이미 연결되어 있다. TI가 제공한 예제를 사용하면 쉽게 칩의 온도를 읽을 수 있다.      아래 그림은 ADC 모듈 블럭이다. .. 2024. 5. 1.
C++ ] leetCode 784 - Letter Case Permutation Given a string s, you can transform every letter individually to be lowercase or uppercase to create another string. Return a list of all possible strings we could create. Return the output in any order. Example 1: Input: s = "a1b2" Output: ["a1b2","a1B2","A1b2","A1B2"] Example 2: Input: s = "3z4" Output: ["3z4","3Z4"] Constraints: 1 2024. 4. 30.
TMS320F28388D ] Maximum Input Voltage Operating Voltage가 3.3V인 MCU 중 5V tolerant I/O인 경우도 있다는데 얘는 아니다. 일단 Input voltage의 Maximum rating이 4.6V이다.      그리고 참고로 ADC 입력의 경우 정상동작 하려면 VDDA + 0.3V 이하로 유지되어야 한다. 2024. 4. 29.
Eclipse ] Task Tags 기능 Eclipse 기반 IDE에서 사용할 수 있는 Task Tags 기능은 소스 코드 내 주석을 통해 할일 목록을 관리하는데 유용하다. 개발자가 아래 그림과 같이 TODO, FIXME 같은 태그를 포함한 주석을 추가하면 Eclipse에서는 이러한 태그가 포함된 주석을 자동으로 인식하여 스크롤바에도 표시를 해주고 Tasks view를 통해 한곳에서 TODO 목록을 확인할 수도 있다. 특히 stub 함수를 만들고 나중에 구현하려고 할 때 유용하게 사용한다. 2024. 4. 28.
마크다운(Markdown) 문법 제목헤더 1~6까지 있고 헤더1, 헤더2만 밑줄이 붙는다.    이탤릭체, 볼드체, 취소선       인용문    순서있는 목록     순서없는 목록      수평선      줄바꿈띄어쓰기 두 번하고 엔터     인라인 블락       코드블락     표기본 좌측정렬, 가운데 정렬 |:---:| , 오른쪽 정렬 |---:|   인라인 링크   외부 링크    이미지 2024. 4. 27.
C++ ] std::unordered_map과 std::map의 차이, unordered_map의 사용법 std::unordered_map unordered_map은 STL에서 제공하는 해시 테이블 기반의 키-값 쌍을 저장하는 컨테이너로, 사용법은 map과 유사하지만 몇 가지 차이점이 있다.  내부 구현: map은 균형 이진 검색 트리(레드-블랙 트리)를 사용하여 요소를 저장한다.unordered_map은 해시 테이블을 사용하여 요소를 저장한다. 접근 시간: map에서 키-값 쌍에 접근하는 데 걸리는 시간은 O(log n)이다.unordered_map은 평균적으로 상수 시간 O(1)에 키-값 쌍에 접근할 수 있다. 단, 해시 충돌이 발생할 경우 최악의 경우 시간 복잡도는 O(n)에 수렴한다. 정렬: map은 키에 대해 unordered_map은 입력된 순서나 키에 대한 정렬을 유지하지 않고, 해시 함수의 결.. 2024. 4. 26.
Tera Term ] XMODEM 옵션 수정하는 법 테라텀에서 XMODEM protocol의 전송 옵션을 수정하기 위해서는 테라텀이 설치된 경로에서 TERATERM.INI 파일을 찾아 수정하면 된다. 디폴트 경로는 다음과 같다.C:\Program Files (x86)\teraterm\TERATERM.INI   ; XMODEM option (checksum/crc/1k)XmodemOpt=checksum  옵션은 다음의 세 가지가 있다. Checksum : 패킷 사이즈는 128 바이트이고 오류 검사 방식은 Checksum(8bit modulo)을 사용한다.crc : 패킷 사이즈는 128 바이트이고 오류 검사 방식은 CRC-16을 사용한다.1k : 패킷 사이즈는 1024 바이트이고 오류 검사 방식은 CRC-16을 사용한다. 2024. 4. 25.
C++ ] leetCode 1010 - Pairs of Songs With Total Durations Divisible by 60 리트코드 1010 문제 You are given a list of songs where the ith song has a duration of time[i] seconds. Return the number of pairs of songs for which their total duration in seconds is divisible by 60. Formally, we want the number of indices i, j such that i < j with (time[i] + time[j]) % 60 == 0. Example 1: Input: time = [30,20,150,100,40] Output: 3 Explanation: Three pairs have a total duration divis.. 2024. 4. 24.
인텔 hex 포맷 이해하기 (+ Intel hex to Bin 변환) 인텔 hex 포맷 이해하기 Intel Hex 란? Intel HEX는 ASCII 텍스트 형식으로 이진 정보를 전달하는 파일 형식이다. 주로 MCU의 펌웨어 프로그래밍을 위해 흔히 사용된다. 이 파일 형식은 각 줄이 콜론(:)으로 시작해서 줄바꿈 문자(LF나 CR)로 구분되는 여러줄의 레코드로 구성되며 각 줄은 바이너리 정보를 16진수 ASCII 문자 형태로 담고 있다. 그럼 Intel Hex파일은 Binary파일과 실행파일(.elf 또는 .out)과는 어떻게 다를까? STM32CubeIDE 툴을 사용해서 빌드하면 보통 .elf파일만 생성된다. .elf파일은 Executable and Linkable Format으로 변수 및 함수 심볼 정보, 시스템의 메모리 구조 등 메타데이터를 포함하고 있어 디버거 같은.. 2024. 4. 23.
C++ ] std::set 사용법 std::set STL에 포함되는 std::set은 중복이 없이 정렬된 데이터를 쉽게 관리할 수 있게 해주는 컨테이너로 내부적으로는 균형 이진 검색 트리(레드-블랙 트리)를 사용하여 요소를 저장한다. 가장 큰 특징은 중복을 허용하지 않으므로 모든 요소는 유일하며, 요소를 추가, 삭제, 검색할 때 std::set은 O(log n)을 보장한다. 1. set에 요소 추가하기 set에 요소를 추가할 때는 .insert() 메소드를 사용한다. 삽입 시도 시 중복 요소가 없으면 성공적으로 추가되고, 중복 요소가 있으면 추가되지 않는다. #include #include int main() { std::set mySet; // 요소 추가 mySet.insert(3); mySet.insert(1); mySet.inser.. 2024. 4. 22.
C++ ] leetCode 1029 - Two City Scheduling 리트코드 1029 문제 A company is planning to interview 2n people. Given the array costs where costs[i] = [aCosti, bCosti], the cost of flying the ith person to city a is aCosti, and the cost of flying the ith person to city b is bCosti. Return the minimum cost to fly every person to a city such that exactly n people arrive in each city. Example 1: Input: costs = [[10,20],[30,200],[400,50],[30,20]] Outp.. 2024. 4. 21.