ATmega8 OSCCAL 레지스터 사용하기
2012.03.09
내부 8MHz 설정으로 사용하면서 USART를 사용하기 전까지는 시스템 클럭의 정확성에 대한 의문이 들면서도 잘 작동해서 크게 문제 삼지 않았다. USART로 통신을 하면서 자꾸 통신 중간에 오류가 발생하는 것을 보면서 이런 저런 해결책을 찾던 중에 문제는 내부 RC 오실레이터가 정확하지 않다는 것을 알게 되었고 내부 오실레이터를 보정해서 정확도를 올릴 수 있다는 것을 알았다. ATmega8은 1,2,4,8MHz의 4가지 주파수를 내부 RC 오실레이터의 주파수로 설정할 수 있는데 공장 출하되는 장치는 기본 1MHz로 동작하도록 OSCCAL에 값을 자동으로 넣는다고 한다. 이때, 1,2,4,8MHz의 주파수가 +-1% 오차 범위내에 있도록 하는 보정 값이 미리 시그니처 바이트가 위치한 메모리 상위 바이트에..