void countMode (u8 cntChannel, u8 cntMode)
cntChannel | 고속카운트 채널번호 (0 또는 1) |
cntMode | 0= 단순 카운터 , 상승과 하강에지에서 모두 카운트업 |
1=엔코더 카운트, 상승과 하강에서 모두 카운트업 | |
2= 단순 카운터 , 상승에지에서 카운트업 | |
3= 단순 카운터 , 하강에지에서 카운트업 |
cntMode 를 0 으로 하면 입력펄스의 상승에지와 하강에지에서 모두 증가하는 단순카운트 모드입니다. cntMode 를 2 로 하면 상승에지에서만 증가, 3 으로하면 하강에지에서만 증가하는 단순카운트 모드입니다. 해당채널의 A 단자로 입력되는 펄스를 카운트합니다. 이 모드 사용시 B 단자는 아무 것도 연결하지 않습니다.
CntMode 를 1 로 하면 엔코더 카운트 모드입니다. 해당채널의 A,B 단자에 엔코더의 A, B 상을 연결하여 엔코더로부터 발생되는 펄스를 카운트업/ 다운합니다. 엔코더를 어느방향으로 돌리느냐에 따라서 값이 증가되거나 감소됩니다. CountMode 함수 사용시 기존 카운터값은 지워지고, 0 으로 초기화 됩니다.
5V 를 출력하는 라인드라이브 방식의 ENCODER 는 위와 같이 직접 연결하세요. 만약 오픈콜렉터 타입의 엔코더에 24V 전원을 사용한다면 2.2K 풀업저항을 붙이세요.
countMode(0,0); // 단순 카운트모드로 설정 cnt = count(0); // 0 번 채널에 입력된 카운트값을 읽어옵니다.
16비트 카운트입니다. 65535까지 증가되면 그 다음은 0이 됩니다.