초음파 센서
ATMega1280에서 소스를 그대로 가져와서
ATMega2560에 맞게 수정하였다.
- usonic.h
- usonic.c
요것만 바꾸고 실행하면 된다.
그런데 ATMega128 때에도 거리 측정 값이 좀 이상했다.
눈 대중으로만 봐도 20Cm 는 넘는 거리인데, 10Cm 밖에 안나온다는 것...
ATMega128 때는 그냥 넘어갔지만 이번엔 자세히 살펴보았다.
여러 Reg 를 살펴보고 값도 바꾸어 보았지만
알수가 없었는데 normal mode는 이중 버퍼가 안된다는 것을 대충 보았다.
뭔말인지 이해할 수 없었지만 혹시 TCNT0 값에 문제가 있는가 보았다.
usonic.c 소스에 아래 코드를 추가하여 값을 확인해 본 결과,
TCNT0 값이 118을 넘겼을 때에 0으로 초기화되는지 알았는데
118에 도달했을때? 인터럽트만 발생시키고 계속 값이 차올랐다.
그러니 비교방식을 써봐야 별 의미가 없었다.
그래서 0으로 초기화 시켜주는 소스를 추가하고 나니
그나마 근사치?로 나왔다.
'ATMega256' 카테고리의 다른 글
20140611 - TWI(I2C) 통신 한방 복습!!! (0) | 2014.06.11 |
---|---|
20140610 - TWI 동작 Write/Read 동작 (0) | 2014.06.10 |
20140609 - TWI의 데이터 송신 및 수신 포맷, TWI 레지스터 사용, Device Address (0) | 2014.06.09 |
20140605 - TWI(2-Wire Serial Interface) (0) | 2014.06.05 |
20140603 - DK-128 EXT 배워보쟈 (0) | 2014.06.03 |