OCU (Output Compare Unit) DriverMCAL I/O Drivers 중 하나. 자유 동작 카운터(free running counter)와 비교 threshold의 일치 시점에 출력을 내는 계층. ICU가 입력 엣지를 측정한다면, OCU는 지정 시각에 출력 동작을 트리거한다.

구성 요소

  • Free running counter — 최솟값 → 최댓값으로 자동 증가, 최댓값 도달 시 최솟값으로 자동 재시작
  • Compare threshold — 비교 대상 값

OCU는 카운터가 1씩 증가할 때마다 threshold와 비교한다.

일치 시 동작 — 2가지

  • Notification — 콜백 함수 호출
  • Act on output pin — 핀 상태 변경 (LOW / HIGH / TOGGLE / DISABLE)

API — Threshold 설정

Ocu_SetAbsoluteThreshold(Channel, ReferenceV, AbsoluteV)

절대 threshold 설정. 기록 시점에 따라 두 케이스로 나뉜다.

  • Case 1 — threshold 기록이 target compare match 이전 → 이번 사이클에 equality 발생, 인터럽트·notification 호출
  • Case 2 — threshold 기록이 target compare match 이후 → 카운터가 이미 threshold를 지나갔으므로 이번 사이클에는 equality 발생 안 함 (다음 랩에서 발생)

양자화(quantization) 관점에서 counter가 threshold 상태에 진입하는 순간의 비교 의미.

Ocu_SetRelativeThreshold(Channel, RelativeV)

상대 threshold 설정. 현재 카운터 값 기준 상대 오프셋.

Functions

  • 초기화 / 해제
  • 채널 start / stop
  • Pin state (LOW / HIGH), Pin action (LOW / HIGH / TOGGLE / DISABLE) 설정
  • State·start time·stop time 읽기
  • 현재 counter 값 읽기
  • Absolute / Relative threshold 설정
  • Notification 활성/비활성

의존성

  • MCU Driver — system clock, prescaler, PLL
  • PORT Driver — port pin을 output으로 구성

같이 보기