2007년 7월 31일 화요일

2808 QEP 초기화


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

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

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


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

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

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

EQep1Regs.QPOSCNT = 0;

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

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

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

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

댓글 2개:

  1. 하핫! 마침 해결되셨다니 다행이네요^^



    저도 저 문제 때문에 고생 좀 했었거든요.



    띄엄띄엄 문제가 발생해서 PID문제인줄알고^^ㅋㅋ

    답글삭제
  2. @Yarmini - 2007/08/01 02:25
    선응이 덕분에 골치 썩던게 한번에 풀렸어~ ^^

    땡규!!

    답글삭제