SR 래치: 입력을 끊어도 값이 남는 이유
·
임베디드 실무
게이트의 출력을 다시 입력으로 되돌리면 회로가 스스로 값을 붙잡아 기억합니다. NOR 게이트 두 개를 이렇게 엮은 것이 SR 래치예요. S를 잠깐 1로 만들면 출력이 1로, R을 잠깐 1로 만들면 0으로 바뀌고, 손을 떼도 그 값이 그대로 남습니다.게이트는 기억하지 못한다1편과 2편의 게이트는 지금 들어온 입력만 보고 출력을 정했습니다. 스위치에서 손을 떼면 전구도 바로 꺼졌죠. 이런 회로를 조합 논리라고 합니다.그런데 MCU 레지스터는 값을 한 번 써 두면 다시 쓸 때까지 그대로 들고 있어요. 지금 입력에 더해 기억해 둔 값까지 보고 움직이는 회로를 순차 논리라고 하는데, 게이트만으로 어떻게 이런 기억을 만들 수 있을까요?엘리베이터 호출 버튼을 떠올려 보세요. 버튼을 한 번 누르고 손을 떼도 불이 켜진..
반가산기와 전가산기: 게이트로 1 + 1을 계산하는 법
·
임베디드 실무
2진수 한 자리 덧셈은 게이트 두 개면 됩니다. 합은 XOR, 올림은 AND가 만들고, 이 둘을 묶은 것이 반가산기예요. 아랫자리에서 올라온 올림까지 받으면 전가산기가 되고, 전가산기를 이어 붙이면 몇 자리든 더할 수 있습니다.게이트는 0과 1만 아는데 어떻게 더할까C에서 a + b는 한 줄이지만, 칩 안의 게이트는 "둘 다", "하나라도", "반대로" 같은 판단밖에 못 합니다. 이런 게이트로 어떻게 숫자를 더할까요?이 원리를 알아 두면 덧셈 결과가 이상할 때 원인이 바로 보입니다. 8비트 변수에 값을 계속 더하다가 결과가 갑자기 작아지는 건, 맨 윗자리에서 넘친 올림이 버려졌기 때문이에요. 8비트 MCU라면 이때 CPU가 상태 레지스터의 캐리 플래그에 흔적을 남깁니다.용어 정리 (눌러서 펼치기)용어원래..
논리 게이트 AND OR NOT: 컴퓨터는 0과 1로 어떻게 판단할까?
·
임베디드 실무
C 코드의 a & b는 칩 안에서 AND 게이트가 계산합니다. 컴퓨터가 하는 판단은 전부 AND(둘 다), OR(하나라도), NOT(반대로) 세 가지 게이트를 조합해서 만들 수 있어요.논리 게이트를 왜 알아야 할까펌웨어 개발은 결국 MCU 레지스터에 0과 1을 쓰고 읽는 일입니다. 라이브러리 함수 한 줄도 안에서는 "3번 비트만 1로 바꾸고 나머지는 그대로 둔다" 같은 비트 연산을 하고 있어요. 평소에는 라이브러리가 이걸 감춰 주지만, LED가 안 켜지거나 통신이 멈추면 데이터시트를 펴고 레지스터 비트를 직접 들여다봐야 합니다.그때 쓰는 C의 비트 연산 &, |, ~는 각각 AND, OR, NOT 게이트와 같은 규칙을 따릅니다. 게이트에서 출발해 레지스터까지 올라가 보면, 데이터시트의 비트 설명을 외우지..
스테이트차트 상태와 천이란? LED 깜빡임으로 이해하기 [초급]
·
🔷 C언어 30강/MBDD Statechart
LED 깜빡임은 상태 2개와 천이 2개로 그릴 수 있습니다. 편집기는 이 그림에서 C 코드를 그대로 생성하고, 상태는 상수로, 천이 조건은 if 문으로 바뀝니다.이 글의 예제는 편집기에서 직접 실습할 수 있습니다브라우저에서 상태도를 그려 보고, 온라인에서 바로 빌드하고, 단위 테스트(UT)를 돌려 실시간으로 동작을 확인할 수 있습니다.실습용 편집기: https://jsyoon-git.github.io/Statechart_C_Studio/ (접속하면 LED 점멸 예제가 열려 있고, Generate C를 누르면 코드가 나옵니다)소스와 설명(GitHub): https://github.com/JSYoon-git/Statechart_C_Studio단위 테스트(UT)는 시나리오 탭에서 돌립니다. 내 컴퓨터에서 간단..
MBD란? 상태도로 C 코드 만들기, 왜 배울 곳이 드물까 [초급]
·
🔷 C언어 30강/MBDD Statechart
MBD(모델 기반 개발)는 동작을 상태도 같은 그림으로 먼저 설계하고 그 그림에서 C 코드를 얻는 개발 방식입니다. 코드부터 짜는 방식과 순서가 반대입니다.이 연재의 예제는 편집기에서 직접 실습할 수 있습니다브라우저에서 상태도를 그려 보고, 온라인에서 바로 빌드하고, 단위 테스트(UT)를 돌려 실시간으로 동작을 확인할 수 있습니다.실습용 편집기: https://jsyoon-git.github.io/Statechart_C_Studio/ (접속하면 LED 점멸 예제가 열려 있습니다)소스와 설명(GitHub): https://github.com/JSYoon-git/Statechart_C_Studio단위 테스트(UT)는 시나리오 탭에서 돌립니다. 내 컴퓨터에서 간단한 서버를 켜야 하고, 켜는 방법은 GitHub..
18진수
Embedded-Korea