본문 바로가기

임베디드소프트웨어24

워치독 타이머 (WatchDog Timer; WDT) 워치독 타이머(WatchDog Timer; WDT) 요약 AVR 장치는 주요 명령 클럭에서 별도의 오실레이터를 사용하는 워치독 타이머(Enhanced Watdog Timer; WDT)가 장착되어 있습니다. WDT는 내장된 128kHZ 오실레이터의 클럭사이클을 기반으로 '카운터'를 증가시키는 장치입니다. WDT는 '카운터'가 타임아웃 값에 도달하면 인터럽트나 시스템 리셋을 강제합니다. 일반적인 동작 모드에서는, 어플리케이션에서 워치독 타이머 리셋 명령으로 타임아웃 값까지 도달하기 전에 카운터를 리셋합니다. 만약 카운터가 재시작하지 않으면 인터럽트 또는 시스템 리셋이 작동합니다. WDT 특징 - 별도 내장 오실레이터의 클럭 - 3가지 동작모드: 인터럽트, 시스템 리셋, 인터럽트와 시스템 리셋 - 16ms부터.. 2022. 3. 23.
AVR 디지털 입력/출력 포트의 모든 것 (정의, 설정, 구성 확인) AVR 마이크로 컨트롤러는 디지털 입력과 출력을 I/O 핀을 통해 어플리케이션을 제어합니다. 이러한 핀은 고 임피던스 입력으로 전압을 감지할 수 있고, 고전압 또는 저전압 디지털 출력으로 전류를 공급하거나 차단할 수 있습니다. 각 포트별로 통상 8개로 묶여 있습니다. 예를 들어, PortA 등으로 지칭하고 PortA의 핀이 PA0 - PA7까지 있습니다. 디지털 입력/출력 포트 모든 AVR 포트는 범용 디지털 I/O로 사용될 때 읽기-수정-쓰기 기능을 가집니다. 하나의 포트 핀의 입출력 방향은, 다른 포트의 입출력 방향 변경없이 변경할 수 있습니다. 핀 드라이버는 직접적으로 LED 표시할 수 있습니다. 모든 포트의 핀은 공급전압 고정 저항이 있는, 각각 선택가능한 풀업 저항을 가집니다. 모든 I/O 핀은.. 2022. 3. 23.
8-Bit AVR 스택(Stack) 살펴보기 스택의 목적 스택은 주로 임시 데이터, 지역 변수, 그리고 서브 루틴 명령이나 인터럽트 이후 리턴 주소를 저장하는 데 사용됩니다. 이는 높은 메모리 위치부터 낮은 메모리 위치 방향으로 구현됩니다. 스택 포인터 레지스터는 항상 스택 최상단을 가리킵니다. 또한 서브루틴과 인터럽트 스택이 위치한 SRAM 데이터 영역을 가리킵니다. 스택 포인터 AVR에서 스택 포인터는 I/O 영역에 존재하는 8-bit 레지스터 2개로 이루어져 있습니다. BIT 번호는 구현하기에 따라 다릅니다. 참고: AVR 아키텍처 구현에서 데이터 영역이 매우 작다면 SPL 영역만 필요하고 SPH는 존재하지 않습니다. 스택 명령 푸쉬 명령은 스택 포인터 값을 낮춥니다. SRAM 내에 스택은 반드시 서브루틴 명령이나 인터럽트 이전에, 프로그램에.. 2022. 3. 22.
8-Bit AVR 상태 레지스터 상태 레지스터는 최근 계산한 수학 연산 명령에 대한 정보를 가지고 있습니다. 연산 명령 정보는 조건부 연산을 수행하기 위해, 프로그램 플로우를 변경하는 데에 사용될 수 있습니다. 상태 레지스터는 ALU 연산 이후 업데이트됩니다. 많은 경우에서 비교 명령 사용을 줄일 수 있어 결과적으로 빠르고 컴팩트한 코드를 만들 수 있습니다. 상태 레지스터(SREG) 상태 레지스터란 ALU가 가장 최근 실행한 산술 명령의 결과와 상태를 표시하는 레지스터입니다. 하드웨어에 의한 ALU 동작이 끝난 후 SREG가 업데이트됩니다. 상태 레지스터의 값을 통해 다음 목적으로 사용됩니다. - 상태 레지스터의 BIT값을 통한 연산 결과 확인 - 프로세서의 상태를 알아내거나 흐름을 변경하는 데 계산 결과 사용 각 BIT별 설명은 아래.. 2022. 3. 21.