본문 바로가기

전체 글842

인터넷 익스플로러 엣지로 자동전환 안되게 하는 법 아래 경로로 이동한다. C:\Program Files (x86)\Microsoft\Edge\Application\112.0.1722.39[버전]\BHO 폴더 안에 다음과 같은 파일이 있는데 IE에서 Edge로 자동전환하게 하는 프로그램이다. 삭제하는 것은 찜찜하니 다음과 같이 폴더명을 바꿔주면 된다. 2023. 4. 13.
STM32 ] USB Host MSC Board : STM32F429ZI (Nucleo 144) STM32CubeIDE : version 1.10.1 Firmware Package : FW_F4 V1.27.1 Clock Configuration USB 48MHz 클락을 설정하기 위해 HSE를 사용했다. USB_OTG_FS 설정 보드가 Host 모드로 동작하게 설정해준다. USB Flash Drive는 자체전원이 없으니 VBUS를 통해 전원을 공급해주어야 한다. 그래서 USB_ID핀과, USB_SOF핀은 비활성화 됐는데, USB에서 ID핀은 On-The-Go (OTG) 기능을 지원하기 위해 사용되므로 호스트 또는 디바이스 기능만 가진 USB장치를 사용하는 경우 ID핀은 필요하지 않다. 그리고 SOF 타이밍 동기화에 물리적인 SOF핀을 사용하는.. 2023. 4. 13.
C#, WinForms ] decimal to hex / hex to decimal converter 깃허브 주소 : https://github.com/joeteo/num2hex GitHub - joeteo/num2hex Contribute to joeteo/num2hex development by creating an account on GitHub. github.com 프로그램만 다운받기 : 먼저 디자이너에 대해 얘기해보면 comboBox는 사용자가 입력할 수 없게 DropDownStyle을 DropDownList로 만들었다. 그리고 콤보박스에서 선택된 항목이 변경되었을 때 호출되는 SelectedIndexChanged 이벤트 핸들러를 추가했다. 참고로 index는 처음 아무것도 선택하지 않았을 땐 -1이고 첫번째 아이템부터 인덱스 0으로 시작한다. 정수형 데이터 타입 선택 시 옆에 range를 보여.. 2023. 4. 12.
TFTP 프로토콜 TFTP 프로토콜 HTML 삽입 미리보기할 수 없는 소스 Trivial File Transfer Protocol의 약자로, 인터넷 프로토콜 스위트(IP Suite)*의 일부로서 파일 전송 프로토콜이다. TFTP는 TCP/IP 프로토콜 스택을 기반으로 하며, 그 중 UDP(User Datagram Protocol)를 이용하여 작동한다. 기본적으로 UDP 포트 69번을 사용하며, 전송할 파일의 이름과 위치를 포함하는 요청 메시지를 TFTP 서버에 보낸다. 이후 TFTP 서버는 파일을 찾아서 클라이언트에게 전송하는데, 전송 과정에서는 오류 검사와 재전송을 처리하는 기능이 내장되어 있다. TFTP는 파일 전송 속도가 느리고 오류 처리 기능이 FTP와 비교해 상대적으로 취약하다는 단점이 있지만, 작은 파일을 빠르.. 2023. 4. 10.
C ] float to hex / hex to float Converter 2023.04.09 - [프로그래밍/C# (WinForms)] - C#, WinForms ] float to hex / hex to float Converter C#, WinForms ] float to hex / hex to float Converter 필요에 의해서 만들었다. 내가 예전에 소개한 float to hex converter 사이트랑 달리 시스템 아키텍쳐에 따라 메모리에 저장된 대로 보여준다. 디자이너 부분을 먼저 살펴보면 Form은 사용자가 크기를 eteo.tistory.com 위 글에서 WinForms로 만든 float to hex / hex to float Converter를 C언어로 간단히 구현해 본 것. 예외처리나 옵션 없이 리틀엔디안으로 변환하는 기능만 넣었다. #include .. 2023. 4. 9.
C#, WinForms ] float to hex / hex to float Converter 엔디안을 선택하면 시스템 아키텍쳐에 따라 메모리에 저장된 대로 보여주고, Hex값은 0x 접두사를 붙이거나 혹은 공백 구분자를 두거나 선택할 수 있게했다. 디자이너 부분을 먼저 살펴보면 Form은 사용자가 크기를 변경할 수 없도록 FormBorderStyle을 FixedSingle로 하고 Form에 있는 Font들이 다 상속받을 수 있도록 기본 Font를 설정한다. 라디오버튼과 변환 부분은 panel을 사용해 구분 짓고, 변환 후 결과를 보여주는 textBox는 사용자가 copy만 할 수 있게 ReadOnly 속성을 true로 하였다. this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; this.Font = new System.. 2023. 4. 9.
C#, LINQ ] Enumerable 클래스, Range(), Select(), Where(), ToArray() 메서드 LINQ LINQ(Language Integrated Query)는 .NET Framework에서 데이터 쿼리를 지원하기 위해 도입된 기술로, C# 및 VB.NET에서 사용할 수 있는 쿼리 언어이다. SQL과 유사한 쿼리 구문을 사용하여 데이터를 검색, 정렬, 필터링, 그룹화 및 조작할 수 있으며, System.Linq 네임스페이스에 속하는 다양한 클래스와 메서드를 제공한다. 이 네임스페이스에는 Enumerable, Queryable, Grouping, Lookup, OrderedEnumerable 등의 클래스가 포함되어 있고, Enumerable 클래스는 LINQ to Objects를 위한 확장 메서드를 제공하며, Queryable 클래스는 LINQ to SQL, LINQ to Entities, LIN.. 2023. 4. 9.
C++ ] leetCode 2610 - Convert an Array Into a 2D Array With Conditions You are given an integer array nums. You need to create a 2D array from nums satisfying the following conditions: The 2D array should contain only the elements of the array nums. Each row in the 2D array contains distinct integers. The number of rows in the 2D array should be minimal. Return the resulting array. If there are multiple answers, return any of them. Note that the 2D array can have a.. 2023. 4. 9.
비글본 블랙 시작하기 같이온 USB케이블을 통해 비글본 블랙의 mini USB P4포트와 PC를 연결한다. 비글본 블랙은 eMMC에 데비안 계열 리눅스 배포판이 저장된 채로 출고되기 때문에 USB포트를 통해 전원이 공급되면 저장된 운영체제 이미지로 부팅된다. 부팅이 되고나면 조금 후 FAT 파일시스템의 드라이브가 잡힌다. 안에 들어가 START.htm 문서를 확인하면 처음 시작하는 사람들을 위한 가이드를 볼 수 있다. 아래 경로로 들어가면 Ethernet over USB interface 를 사용하기 위한 드라이버 파일이 있다. \Drivers\Windows 서명되지 않은 드라이버라 설치 실패했다. Win + I 키를 눌러 Windows 설정 ↓ 업데이트 및 보안 ↓ 복구 ↓ 고급시작 옵션 ↓ 지금 다시 시작 ↓ 재부팅 후 .. 2023. 4. 9.
비글본 블랙 ] 전원 공급 방법 첫번째 방법 The board can be powered by the PC via the provided USB port. In this configuration, The board is accessed either as a USB storage drive or via the browser on the PC. All the power for the board is provided by the PC via the USB cable. In some instances, the PC may not be able to supply sufficient power for the board. In that case, an external 5VDC power supply can be used, but this shoul.. 2023. 4. 9.
비글본 블랙 BeagleBone Black(BBB) 공식 홈페이지 : https://beagleboard.org/ System Reference Manual : https://docs.beagleboard.org/latest/boards/beaglebone/black/ Beaglebone Black은 텍사스 인스트루먼트(Texas Instruments)에서 설계한 유명 싱글 보드 컴퓨터(SBC)이다. TI Sitara AM335x 시스템온칩(SoC)을 기반으로 하며, 1GHz에서 작동하는 ARM Cortex-A8 CPU를 포함하고 있다. 개발자는 BeagloeBone Black을 통해 저비용으로 임베디드 리눅스 개발을 시작할 수 있고 규모있는 커뮤니티에서 다양한 지원을 받을 수 있다. 또한 BeagleBone Black은 오픈 소스 하드웨어라서 Beagl.. 2023. 4. 9.
STM32 ] 유저 버튼 고장 수리하기 보드의 유저 버튼이 고장나서 집에 돌아다니는 스위치로 교체해보았다. 기존에 남아있던 버튼 틀은 니퍼로 짤라주고 납땜이 잘되게 하기 위해 단자 접촉부위에 사포질을 하거나 칼집을 내준다. 미리 납을 녹여서 덮어두고 그 위에 솔더링 페이스트 묻힌 버튼을 올려놓고 다시 납땝한다. 예상대로 잘 작동한다. 2023. 4. 9.
노트북 시리얼 번호 CMD창에서 알아내는 법 명령 프롬프트 창에 아래 명령어 입력 wmic csproduct get identifyingNumber 2023. 4. 9.
Windows ] dism 운영체제 이미지 손상 복원, sfc 시스템 파일 무결성 검사 및 복원 Windows 이미지 손상 복원 dism /online /cleanup-image /restorehealth Windows 시스템 파일의 무결성을 검사하고 손상된 파일을 복원 sfc /scaannow 디스크 검사하고 파일 시스템 오류 수정 chkdsk c: /f 2023. 4. 9.
WinForms ] Label vs TextBox 컨트롤 결론 : 사용자가 편집할 수 있게끔 하려면 TextBox, 아닌 경우 Label 사용 추천 There are a few pro's and con's to both. Label Pro's: Text is not copy able Cursor does not change Sets size based on text (if autosize is on, I think its on by default) Option to align text to the right (autosize off) Con's: Text is not selectable/copy able Text might outgrow form/parent with autosize TextBox Pro's: Text is copy able Fixed size.. 2023. 4. 9.
SoC와 MCU의 차이 SoC(System-on-a-Chip)와 MCU(Microcontroller Unit)는 모두 하드웨어와 소프트웨어의 기능을 모두 포함하는 집적회로이지만 둘은 목적과 구성, 사용 분야 등에서 차이가 있다. SoC는 CPU, GPU, 메모리, 입출력(I/O) 인터페이스, 네트워크, 그래픽 처리 장치 등을 포함하고 있으며, 대규모 응용 프로그램을 수행할 수 있는 미니어처화된 컴퓨터 시스템이다. 대표적으로 모바일 기기, 스마트폰, 태블릿, IoT 디바이스, 자동차 시스템 등에서 사용된다. 반면에 MCU는 CPU, 메모리, 입출력(I/O) 인터페이스, 타이머, 카운터, ADC 등의 기능을 포함하고 있으며, 대개 저전력, 실시간 제어, 데이터 수집 및 처리와 같은 임베디드 시스템에서 사용된다. 즉, SoC는 주로.. 2023. 4. 9.
SBC(Single-Board Computer) SBC는 Single-Board Computer의 약자로, 컴퓨터의 모든 기능이 하나의 PCB(Printed Circuit Board)에 탑재된 컴퓨터를 말한다. SBC는 일반적인 데스크탑 컴퓨터와 비교하여 크기가 작고 저전력이며, 대개 리눅스나 다른 임베디드 운영체제를 사용하한다. 비교적 저렴한 가격과 다양한 입출력(I/O) 핀을 가지고 있어 다양한 외부 디바이스 및 센서와의 연결이 용이하여 개인용 컴퓨터, 교육 및 학습용, 임베디드 시스템 등 다양한 분야에서 쓰인다. 일반적으로 SBC(Single-Board Computer)에는 SoC(System-on-a-Chip)가 탑재된다. SoC는 단일 실리콘 칩에 CPU, GPU, 메모리, 입출력(I/O) 인터페이스, 네트워크, 그래픽 처리 장치 등을 포함하.. 2023. 4. 9.
C++ ] leetCode 1828 - Queries on Number of Points Inside a Circle 문제 You are given an array points where points[i] = [xi, yi] is the coordinates of the ith point on a 2D plane. Multiple points can have the same coordinates. You are also given an array queries where queries[j] = [xj, yj, rj] describes a circle centered at (xj, yj) with a radius of rj. For each query queries[j], compute the number of points inside the jth circle. Points on the border of the circ.. 2023. 4. 1.
C++ ] leetCode 64 - Minimum Path Sum Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right, which minimizes the sum of all numbers along its path. Note: You can only move either down or right at any point in time. Example 1: Input: grid = [[1,3,1],[1,5,1],[4,2,1]] Output: 7 Explanation: Because the path 1 → 3 → 1 → 1 → 1 minimizes the sum. Example 2: Input: grid = [[1,2,3],[4,5,6]] Output: 1.. 2023. 3. 31.
C ] 시간복잡도가 O(1)인 2의 거듭제곱 판별 int isPowerOfTwo(int n) { return (n && ((n & (n - 1)) == 0)); } 2의 거듭제곱은 가장 왼쪽에 있는 1을 제외하고 뒷부분이 전부 0이라는 걸 고려할 때 위와 같은 코드로 판별할 수 있다. 그리고 어떤 정수를 2의 거듭제곱 수로 나눈 나머지 연산을 해야할 때 성능향상을 위한 최적화 기법으로 %연산이 아니라 &연산을 쓰기도 한다. 위와 같은 논리이다. #define SOME_NUMBER_POWER_OF_TWO8 int getRemainder(int n) { return n & (SOME_NUMBER_POWER_OF_TWO - 1); } 2023. 3. 31.
Schmitt trigger 슈미트 트리거란? 슈미트 트리거는 히스테리시스(hysteresis) 특성을 갖도록 한 비교기이다. 비교기란? 비교기는 두 전압 레벨을 비교하여 그 결과를 디지털 신호(높음/낮음)로 출력하는 전자 부품이다. 일반적인 비교기는 하나의 기준 전압(임계값)만을 사용하기 때문에, 입력 신호에 잡음이 섞여 있을 경우 이 잡음이 결과에 오류를 일으킬 수 있니다. 이러한 문제를 해결하기 위해 '히스테리시스' 특성을 가진 비교기를 사용할 수 있다. 히스테리시스란? 히스테리시스(Hysteresis) 특성은 어떤 시스템이나 장치에서 입력 값이 증가할 때와 감소할 때의 반응 경로가 다르게 나타나 결과 값에 지연이나 오프셋을 발생시키는 현상을 말한다. 즉, 슈미트 트리거는 입력 신호의 방향(상승 또는 하강)에 따라 두 개의 임.. 2023. 3. 31.
C++ ] accumulate 함수 사용시 주의사항 헤더 #include accumulate 함수를 사용하기 위해선 numeric 헤더를 포함한다. 함수 원형 template T accumulate(InputIt first, InputIt last, T init); 구간 [first, last)에 속한 요소들의 합을 구한다. init으로 누적값을 초기화하고, 구간 내의 모든 요소들을 차례대로 더해서 누적값을 반환한다. ❗ 주의할 것은 인자인 first Iterator는 이상이고, last Iterator 미만이다. 때문에 last에는 합을 마지막 요소의 다음 위치를 가르키는 iterator가 온다. vector의 끝까지 연산하는 경우는 vec.end()가 온다. 사용 예시 벡터 내의 모든 요소의 합을 계산한다. #include #include #inclu.. 2023. 3. 31.
Win32 API, Windows API Windows API란? Windows에서 동작하는 App을 만들 때, Windows가 프로그래머들을 위해서 제공해주는 함수의 집합을 말한다. 과거 Windows 95, 98, ME 및 NT와 같은 32 비트 운영체제에서 사용되는 인터페이스는 Win32 API라는 이름으로 불렸다. 현재는 64비트 지원이 추가되면서 Win32 API를 포함하여 Windows API라고 부르고 있지만 아직도 Win32 API라고 칭하는 사람들이 있다. Windows API를 사용하려면? Windows API를 사용하려면 해당 API 함수가 선언된 헤더 파일과 라이브러리를 프로젝트에 추가해야 하며, 보통 Windows API 함수는 windows.h 헤더 파일 안에 선언되어 있으므로 이 헤더 파일을 포함시키면 된다. Visu.. 2023. 3. 31.
Python ] struct 모듈 This module converts between Python values and C structs represented as Python bytes objects. Compact format strings describe the intended conversions to/from Python values. The module’s functions and objects can be used for two largely distinct applications, data exchange with external sources (files or network connections), or data transfer between the Python application and the C layer. Funct.. 2023. 3. 31.
Analog Multiplexer/Demultiplexer 아날로그 멀티플렉서(Multiplexer) 및 디멀티플렉서(Demultiplexer)는 다수의 아날로그 입력 신호 중에서 하나를 선택하거나 분배하기 위해 사용되는 IC칩이다. 디지털 멀티플렉서랑 똑같다, 다수의 입력 신호 중에서 하나의 출력 신호를 선택하는 역할을 한다. 다만 신호가 아날로그인 것이다. 입력 신호는 멀티플렉서의 선택 입력에 의해 선택되는데, 선택 입력(Sx Pin)은 이진 형태로 구성된다. 2의 n승 개의 입력이 있는 멀티플렉서는 n개의 선택 입력이 필요하다. 선택 입력을 이용해 하나의 입력을 선택하고 출력으로 전달하므로 멀티플렉서는 다수의 입력 신호를 단일 출력 신호로 변환하는 기능을 수행한다. 반면 디멀티플렉서는 반대로 하나의 입력 신호를 선택 입력을 통해 다수의 출력 신호 중 하나로.. 2023. 3. 31.
CAN FD, TDC (Transmitter Delay Compensation) CAN FD 사용시 Data bitrate 2Mbps까진 괜찮았지만 그 이상으로 고속 통신하려면 CAN FD 컨트롤러에 TDC 설정이 필요하다. transmitter delay compensation (TDC) At bit-rates higher than 1 Mbit/s in the data phase of CAN FD frames the transmitting node has to compensate the TD when comparing its transmitted bits to the delayed received bits. TDC mechanism defines a secondary sample point SSP. When it is used, the transmitter ignores bit e.. 2023. 3. 31.
C++ ] leetCode 1476 - Subrectangle Queries Implement the class SubrectangleQueries which receives a rows x cols rectangle as a matrix of integers in the constructor and supports two methods: 1. updateSubrectangle(int row1, int col1, int row2, int col2, int newValue) Updates all values with newValue in the subrectangle whose upper left coordinate is (row1,col1) and bottom right coordinate is (row2,col2). 2. getValue(int row, int col) Retu.. 2023. 3. 31.
소수점이하 값 정수형으로 얻는법 소수점 이하 값을 정수형으로 얻으려면, 원하는 소수점 자리수만큼 10의 거듭제곱을 곱하고 나머지연산을 하면된다. int main() { float pie = 3.141592; printf("%d.%d", (int)pie, (int)(pie*1000000) % 1000000); return 0; } 다른 예시 byte를 KB 또는 MB로 변환하는건데, a/b의 소수점 이하 둘째자리 까지의 값을 정수형으로 알고 싶으면 a*10^2/b 하면된다. 그 이하는 버림. #include void printSizeInKBorMB(int byte) { int size; int decimal; char unit; if (byte < 1024 * 1024) { // 1MB 미만 size = byte / 1024; decim.. 2023. 3. 31.
NTP 서버에서 시간 받아오기 UTC UTC (Coordinated Universal Time)는 지구상의 시간 표준을 정의하기 위한 국제 표준 시간으로, 국제원자시(TAI)를 기반으로 하되, 지구의 자전 속도 등에 따라 발생하는 차이를 보정하기 위해 윤초(Leap Second)를 삽입하여 보정된다. 국제 원자시란 세슘 원자의 진동 주파수를 기준으로 시간을 계산하며, 세계 각지의 원자 시계들의 평균값을 취하여 UTC가 유지된다. UTC는 24시간을 기준으로 하며, 1시간은 60분으로 구성되고, 1분은 다시 60초로 구성되어 있다. 이러한 시간 단위들은 세계 각지에서 일관되게 사용된다. 아래 Unix Time, Windows Time, NTP time 전부 UTC를 기반으로 한다. Unix Time Unix Time은 컴퓨터 시스템에서.. 2023. 3. 31.
C++ ] 2차원 vector 사용법 1. 생성 및 요소 접근 2차원 벡터는 vector 형태로 생성할 때, 첫 번째 인자에 행의 개수를 넣고, 두 번째 인자에는 열의 개수를 넣는다. 또한, 세 번째 인자로는 2차원 벡터의 모든 요소를 초기화할 수 있는 값을 넣는다. 예를 들어, 위의 코드에서는 0으로 모두 초기화한다. 이렇게 생성한 2차원 벡터는 matrix[i][j]와 같이 2개의 인덱스로 요소에 접근할 수 있다. #include #include using namespace std; int main() { vector matrix(3, vector(3, 0)); matrix[0][0] = 1; matrix[1][1] = 2; matrix[2][2] = 3; for(int i=0; i 2023. 3. 31.