본문 바로가기

전체 글

(49)
[소수점 연산] 낮은 bit의 MCU에서의 연산 처리법 나눗셈이나 소수점 연산이 많이 필요한 MCU가 낮은 비트 연산을 하는 MCU일때, 연산 자체가 많이 느려질수가 있다. 이에 따라 연산을 조금 더 빠르게 하기 위해서는 아래와 같은 방법을 사용하면된다. 예를 들어 X * B/A = Y 형태의 식에서 A = 13, B = 7이라고 하면 1) X * 7/13 = Y이다. 이때 B/A = 7/13 이므로 나눠버리면 소수점이 나오게 된다. 1) 식에서 2) X * 7/13 = X * 7 * 1/13이고, 1/13 = (약)0.077이다. 2) 식에서 0.077 = 0.077 / 1이고, 예를 들어 10bit의 분해능을 가진다 하면. 0.077 / 1 * 1024 / 1024 = 78.848/1024이다. 약 79/1024인데 79를 1024로 나누는 것, 즉 79..
아이패드 프로 3Gen Wifi-Cellular 256GB + Apple Pencil 2Gen 구입 아이패드 프로 3세대 구입하였다. 출퇴근 시간이 상당하니 이동하는 시간에 공부 할 요량으로 샀다. 무엇 보다.. 스캔 해놓은 책이 다 날라가고 패드에 남아있기 때문에.... 대탐소실(?)하였다. (가격적으로만ㅋㅋ) 이번엔 스마트 폴리오만 끼고 케어플러스 먹어 보려고 한다. 진짜 비싼 케이스. 사촌동생한테 넘기고 한동안 없어서 허전했는데 좋구만 ㅋ
임베디드에서 공용체(union)과 구조체(struct)의 사용 typedef union regA { struct { uint8_t a1; uint8_t a2; uint8_t a3; } bits; uint8_t regByte; } regA_t; 임베디드에서는 칩과 칩간의 통신을 기능을 제공하게 된다. 다음과 같이 공용체 내에 구조체를 사용하게 되면 메모리상 시작점이 같은 메모리를 사용하게 된다. 또한 통신 시 공용체로는 바이트 단위의 통신을, 구조체로는 비트 단위의 통신을 가능하게 한다.
2의 보수 (2's Complement) 보수라는 것은 '보충한다'의 의미로 예를 들어 3에 대한 10의 보수는 7이 될 수 있다. 예를 들어 7+3 = 10과 같이.. 컴퓨터 상에서 2의 보수는 다음과 같다. 0. 예를 들어 1010(2)의 2진수가 있다고 가정했을 때 1. 우선 1의 보수를 취해준다. --> 0101(2)가 된다. 2. 후에 0001(2)을 더해준다. --> 0110(2) 3. 결과적으로 1010(2)에 대한 2의 보수는 0110(2)이 된다. 0에서는 양수 표현 1에서는 음수 표현 이때, 0에서 문제가 된다. +0 : 0000 0000(2) -0 : 1111 1111(2) 위와 같이 0이 2개가 되는 문제가 발생. 1111 1111(2)는 -1이다.
이클립스 외부 프로젝트 Import 이클립스 IDE에서 외부 프로젝트 파일을 Import하는 법
OMV 마운트 해제 및 포맷 타입 정하기 OMV를 사용하면서 하드 내용을 정리할 필요를 느껴 mac으로 데이터를 옮긴 후 포맷 후 다시 데이터를 옮기고 있다. 따로 하드하게 굴리지 않아 설정을 건드릴때 마다 헤맨다.. 0. 우선 마운트 해제를 하기 위해서는 ftp든 smb든 공유 설정을 해준 폴더를 모두 해제한다. 1. 그러면 마운트 해제가 가능해진다. 2. 다시 '파일 시스템'탭에서 '생성'을 눌러 포맷 타입을 지정해준 후에 포맷을 시작한다. 이 간단한걸 맨날 해멘다..
SPI 통신 SPI (Serial Peripheral Interface) 동기식 직렬 통신(클럭 라인 사용) 4개의 핀 사용 : SCK - 클럭 라인(마스터가 공급) MISO - Master In / Slave Out MOSI - Master Out / Slave In SS - Slave Select (Slave마다 하나씩 필요, Master가 데이터를 받을 Slave를 선택) MISO, MOSI, SS 모두 Idle상태가 HIGH이므로 SS에 Low 가 들어올때 해당 Slave가 데이터를 받을수있는상태가 된다 1:n(마스터1:슬레이브 다수)통신 가능, 마스터입장에서 송,수신선이 분리되어있으므로 데이터를 보내면서 동시에 받을수 있다(Full-Duplex) 1:1통신의 경우에는 슬레이브측의 SS를 Pull-down하여..
I2C 통신 I2C - Inter-Integrated Circuit 동기식 직렬 통신(클럭 라인 사용) 2개의 핀을 사용 : SDA - Serial DAta, 데이터 직렬 통신에 사용된다. SCL - Serial CLock, 디바이스 간에 동기화에 사용되는 클럭 SDA와 SCL은 Pull-up 저항으로 인해 항상 high를 유지(Idle상태가 둘 다 High) 그림과 같이 마스터와 슬레이브는 하나의 버스에 연결되어있다 기본적으로 I2C는 7비트의 주소를 가지고 있어서 128개의 주소 중 reserved된 16개를 뺀 112개의 주소를 사용 가능하다. 즉, 112개의 장치들 간에 I2C 통신이 가능하다 Start Condition과 Stop Condition으로 데이터 전송의 시작과 끝을 알린다 Start Condit..