다름이 아니라 RTC를 사용하여 Tick Counting을 하고 있는데요..
이상하게 잘 되다가 값이 꺼꾸로 가는 경우가 있습니다.
예를 들어
Kick[i].kick_start_tick = GetRTCTickCount()( CURTICCNT래지스터 값을 리턴 );
......
.....
......
Kick[i].kick_end_tick = GetRTCTickCount()( CURTICCNT래지스터 값을 리턴 );
에서 이렇다면 Tick Counter Register 가 오버 플로우가 나기 전에는 Kick[i].kick_end_tick값이 Kick[i].kick_start_tick값 보다 높아야 하는데... 별 문제 없이 잘 되다가 종종 Kick[i].kick_end_tick값이 Kick[i].kick_start_tick보다 작게 되는 경우가 있습니다. 작게 된다고 해서 크게 작은 것은 아니고 대충 100이내의 값인 것 같은데.. 어찌 됐든.. 여기서 발생하는 문제 때문에 Tick 값 자체를 사용하기가 좀 그렇습니다. 혹시 분주 하면 좋아 질까 해서 그렇게도 해 보았는데.. 마찬가지 증상이네요..
뭐가 문제 일까요?
그리고 Tick Counter Register와 TICNT로는 Tick 값을 가져 올수가 없고.. CURTICCNT래지스터를 통해서 가져 올 수 있는데.. 근본적으로 CURTICCNT와 TICNT의 차이를 모르겠네요.. 아시는 분 좀 가르침을 부탁 드립니다.