u16 count (u8 cntChannel)
cntChannel : 고속카운트 채널번호 (0 또는 1) |
해당 카운트 채널에 입력된 펄스 수를 읽어오는 함수입니다. 2 개의 카운트 입력 채널은, 항상 들어오는 펄스 수를 카운트 하고 있습니다. 카운트 중인 값은 count 함수로 읽어올 수 있습니다. 즉, C 프로그램이 다른 부분을 실행하고 있을때에도 카운트채널은 항상 입력되는 펄스수를 카운트하고 있기 때문에, 언제 발생될 지 모르는 돌발적인 상황을 체크한다던가, 고속으로 입력되는 펄스를 놓치지 않고 카운트할 수 있습니다. 최대 65535 (16 비트)까지 카운트 할 수 있습니다.
countMode(0,0); // 단순 카운트모드로 설정 cnt = count(0); // 0 번 채널에 입력된 카운트값을 읽어옵니다.
CoutnMode 함수에서 엔코더 입력모드로 설정해 놓았다면, 엔코더의 위치값을 읽어옵니다.
countMode(0,1); // 엔코더 카운트모드로 설정 cnt = count(0); // 0 번 채널에 연결된 엔코더로부터 위치값을 읽어옵니다.
엔코더 위치값이 음수일때에는 2 의보수로 표현됩니다. 즉 –1 일 경우 0xffff 가 됩니다. 결과적으로 엔코더 위치값 사용범위는 –32768 에서 +32767 까지가 됩니다. 만약 엔코더를 조금만 돌렸는데도 변화량이 너무커서, 금방 사용범위를 초과할 것 같다면, countPrescaler 함수를 사용하여 분주비를 높게 설정하여 사용하시기 바랍니다. Count 함수 실행시 기존 카운터값은 지워지지 않고 그대로 유지됩니다.