INNO's Project/MicroMouse

2808 QEP 초기화

innosian 2007. 8. 1. 02:01


제작중인 마우스가 가끔씩 폭주를 하는 현상이 있었다. 

특정한 상황에서 발생하는 문제가 아닌지라 어떻게 해결을 해야하나 참 막막하던 찰라에

선응이 블로그를 보고 혹시 나도?


제어기 루틴을 보면 QEP 의 카운터 레지스터 값을 읽고 초기화를 해주는 부분이 있는데

EQep1Regs.QEPCTL.bit.SWI = 1; // Software initialization of position counter

처음 개발당시 위와 같은 명령어를 사용하다가 직관적이지 못하다 싶어서

EQep1Regs.QPOSCNT = 0;

과 같이 초기화를 해주는 방법을 사용하고 있었다.  하지만 버그가 있는 모양이다.

아주 안되는 것도 아니고 가끔식 문제를 일으키니 사람 환장할 수 밖에...

초기화 명령를 사용함으로써 간헐적으로 폭주하는 증상을 해결하였다. 

참 고마운일이 아닐수 없다.