본문 바로가기

프로그래밍 언어/c(임베디드)10

BCD란? BCD(Binary  Coded Decimal) 코드에 대해 간략하게 정리하는 포스팅을 작성하고 한다. BCD 코드는 "이진화 십진법"로 번역되며BCD 코드를 구성하는 수는 그 위치에 따라서 각 자리수마다 8,4,2,1 가중치를 갖기 때문에  "8421코드"라 호칭된다. 정의 : 십진수 각자리 "0 ~ 9" 를  4비트 이진수로 표현하는 코드 방식 예시 ) 십진수 714 십진수714714BCD0111 0001 0100011100010100 십진수 714은 "0111 0001 0100" BCD 코드로 변환 된다. 2024. 12. 27.
.HEX 과 .ELF 파일 개념 MCU에 소스파일을 write하는 과정은 일반적으로 아래와 같다. 소스파일(.c) -> 빌드(컴파일) -> .hex or .elf 파일 생성 -> ㅡ MCU 또는 flash memory 다운로드  1. 실제로 명령어를 수행하는 장치는 CPU(Center Processing Unit)2. CPU가 이해할 수 있는 명령어 -> 기계어3. 빌드 : 소스코드를 CPU가 이해 할 수 있는 기계어로 변경하는 과정 HEX 파일c언어로 이루어진 소스 파일을 빌드하면 HEX파일이 생성 HEX 파일은 CPU가 실행하는  기계어 코드와 어셈블리어 주소정보가 "16진수"로 표현되어 있다. 예시 he data length field, it represents the number of data bytes (dd) in the r.. 2024. 12. 14.
system() / sync() system()헤더 파일  : #include 원형 : int system(const char *string); 기능 :  인수로 실행시킬 프로세스의 이름을 받아 그 프로세스를 호출그 프로세스가 종료될 때까지 기다린다(Blocking)프로세스 생성 + 대기 + 대체를 모두 포함한다. 리턴 값 : 성공 0이 아닌값 리턴, 실패 0 리턴 사용법 두가지로 나뉜다 1. 파일 경우 지정 ex)system("/root/usr/include/stdio.h");system("C:\\Windows\\hello.bat"); 2. 경로지정 없이 쉘 명령어 입력ex)system("ls")system("ipconfig") 리눅스 환경 변수 지정 경로가 "/usr/bin" 있고, /usr/bin에는 리눅스 명령어가 들어 있다. .. 2024. 11. 13.
Wiegand 통신 Wiegand protocol: 두 개의 D0, D1 라인을 이용해 소량의 데이터를 전송 하는 방식으로 , 주로 출입통제 장치의 리더와 컨트롤러 간의 통신 방식 리더는 RS-485, RS-232, ABA-Track II 와 같이 다양한 통신 방식을 취하기도 하지만,RFID 통신으로 주로 WIEGAND 방식을많이 사용 합니다. 기본 상태 -> D1 : High, D2 : Highlogic 1 -> D1 : LOW, D2: HIGHlogic 0 -> D1 : HIGH , D2 : LOWD0, D1 이 각각 의미 하는 것은, D0 가 LOW 이면 그 비트 값이 '0' 이고, D1 이 LOW 이면 그 비트 값이 '1' 임을 의미 합니다.따라서 D0 와 D1 은 동시에 LOW 가 되지 않으며, 정해진 타이밍이 있.. 2024. 9. 8.