====== 고속 카운터 (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와 엔코더 입력 기능은 내부적으로 동일한 고속 처리 자원을 공유합니다. * 동일 채널 번호는 두 기능에서 동시에 사용할 수 없습니다. [[..:index|← CUBLOC2 목차로 돌아가기]]