부산IT학원/스마트컨트롤러

20140612 (초음파 모듈 Ultra Sonic)

EHOzlO 2014. 6. 12. 16:33

79일차









-------------------------------------------

ATMega2560 Ultra Sonic(초음파 모듈)

-------------------------------------------




--- ATMega128 소스를 그대로 가져왔다.

몇몇 값이 달라서 그것만 수정 후 실행해 보았다.


- 수정한 것들


- usonic.h







- usonic.c






요것만 바꾸고 실행하면 된다.



그런데 ATMega128 때에도 거리 측정 값이 좀 이상했다.

눈 대중으로만 봐도 20Cm 는 넘는 거리인데, 10Cm 밖에 안나온다는 것...

ATMega128 때는 그냥 넘어갔지만 이번엔 자세히 살펴보았다.


여러 Reg 를 살펴보고 값도 바꾸어 보았지만

알수가 없었는데 normal mode는 이중 버퍼가 안된다는 것을 대충 보았다.

뭔말인지 이해할 수 없었지만 혹시 TCNT0 값에 문제가 있는가 보았다.


usonic.c 소스에 아래 코드를 추가하여 값을 확인해 본 결과,



TCNT0 값이 118을 넘겼을 때에 0으로 초기화되는지 알았는데

118에 도달했을때? 인터럽트만 발생시키고 계속 값이 차올랐다.

그러니 비교방식을 써봐야 별 의미가 없었다.


그래서 0으로 초기화 시켜주는 소스를 추가하고 나니

그나마 근사치?로 나왔다.