안녕하세요.. 질문한개 드립니다..
제가 8051 키트로 정확한 시간을 만들어 볼려고합니다 1초..
시스템 내부클럭이 22.1184 입니다..
따라서 분주 12로 나눈것을 이용하면될껍니다..
12/22.1184 이것이 1초가될것입니다..
따라서
c소스적으로짜보면
a=0;
for ( int i=0 ; i<(12/22.1184) ; i++);
a++;
이런방식으로 할려고 합니다 저렇게하면 포문한번돌면 1초가 되겠죠...
저기에서 인터럽트를 사용하면.. 인터럽트가 계속발생해서 시간이 늦어질꺼같습니다..
이것을 해결할방법이 없을까요? 최소한의 인터럽트를 발생시키게 하고싶은데..
제가 8051 키트로 정확한 시간을 만들어 볼려고합니다 1초..
시스템 내부클럭이 22.1184 입니다..
따라서 분주 12로 나눈것을 이용하면될껍니다..
12/22.1184 이것이 1초가될것입니다..
따라서
c소스적으로짜보면
a=0;
for ( int i=0 ; i<(12/22.1184) ; i++);
a++;
이런방식으로 할려고 합니다 저렇게하면 포문한번돌면 1초가 되겠죠...
저기에서 인터럽트를 사용하면.. 인터럽트가 계속발생해서 시간이 늦어질꺼같습니다..
이것을 해결할방법이 없을까요? 최소한의 인터럽트를 발생시키게 하고싶은데..
비교적 정확히는 만들수 있겠으나 그것도 내용에 따라 달라지겠네요. 그냥 속편히 칩 사용하는게 편합니다.
확실히 인터럽트가 사용되면 느려지지요...
인터럽트 사용하고 저런식으로 하면 제 기억에는 24시간 지나면 몇분씩 시간이 뒤로 밀립니다..
영혼님 말대로 rtc칩을 사서 연결해서 사용하시던지 인터럽트 지연시간만큼 계산해서 다시 빼주는 작업을(이것도 매우 정확은 안함) 해주셔야 합니다...