고속 카운터 (HSC)

외부에서 입력되는 펄스를 백그라운드에서 고속으로 카운트할 수 있습니다. 일반 BASIC/LD 스캔과 무관하게 동작하므로, 빠른 입력 신호도 안정적으로 처리할 수 있습니다.

최대 2채널의 HSC 입력을 지원하며, 채널당 최대 50kHz의 HSC 입력을 처리할 수 있습니다.

  • 지원 채널: 0 ~ 1

입력 포트에 채널을 할당해서 사용하는 방식입니다. I입력전용 포트와, P포트에 할당 할 수 있습니다. P포트에 할당했을 경우 자동으로 입력모드로 변경됩니다.

Hscstart

Hscstart channel, port

파라미터 설명
channel 고속 카운터 번호 (0 또는 1)
port 입력 포트 번호

지정한 입력 포트의 펄스를 카운트하기 시작합니다. 카운트는 백그라운드에서 지속적으로 수행됩니다.

Hscread

value = Hscread(channel)

파라미터 설명
value 현재 카운트 값
channel 고속 카운터 번호 (0 또는 1)

지정한 카운터의 현재 누적 펄스 수를 반환합니다.

Hscclear

Hscclear channel

파라미터 설명
channel 고속 카운터 번호 (0 또는 1)

지정한 카운터 값을 0으로 초기화합니다.

Hscstop

Hscstop channel

파라미터 설명
channel 고속 카운터 번호 (0 또는 1)

지정한 카운터를 정지합니다. 정지 후에도 마지막 카운트 값은 유지됩니다.

동작 설명

  • 입력 신호의 상승 엣지(Low → High)에서 카운트가 증가합니다.
  • BASIC/LD 실행과 관계없이 항상 동작합니다.
  • Wait 또는 긴 처리 중에도 카운트는 계속 수행됩니다.

예제

Hscstart 0, 8

Do
  A = Hscread(0)
  Debug Dec A, Cr
  Wait 1000
Loop

특징

  • 고속 펄스 입력 처리 가능
  • 백그라운드 동작
  • CPU 부하 없음

주의사항

  • 단일 입력 기반 카운터로 방향 정보는 제공하지 않습니다.
  • 입력 신호 주파수는 최대 50kHz까지 지원합니다. 이를 초과할 경우 정상적인 카운트 동작이 보장되지 않습니다.
  • 옵토커플러를 사용하는 경우, 옵토커플러의 응답 속도에 따라 실제 사용 가능한 입력 주파수가 낮아질 수 있습니다.
  • 동일 채널에 대해 중복 Hscstart 호출 시 기존 설정이 덮어써질 수 있습니다.
  • 입력 신호는 노이즈의 영향을 받을 수 있으므로, 쉴드 케이블 사용 또는 간단한 RC 필터를 적용하는 것이 좋습니다.

채널 사용 제한

  • HSC와 엔코더 입력 기능은 내부적으로 동일한 고속 처리 자원을 공유합니다.
  • 동일 채널 번호는 두 기능에서 동시에 사용할 수 없습니다.

← CUBLOC2 목차로 돌아가기