회원가입 ID/PW 찾기

마이크로프로세서 HOT타이머인터럽트..

naemaum4u2008.02.27 11:5702.27조회 수 1419댓글 9이 게시물을

AA

타이머 인터럽트를 사용하려고 하는데요,
시간이 안 맞네요,

크리스탈은 14.7456 사용하구요,

UBRRL = 0x0F
TCCR0 = 0x03
TCNT0 = 242


사실 설정하는 방법도 모르고;;
적당히 데이터시트랑 자료같은거 보면서
따라했는데, 아무래도 제대로 이해를 못 한 것 같아요..

잘 몰라서 그런지 질문도 어떻게 해야할지 모르겠네요 ㅠ

타이머 인터럽트가 몇초(몇 us?) 에 한번씩 불러지는 건지..
어떻게 계산하는 건지 좀 가르쳐주세요...^^;;

댓글 9
  • No Profile
    음 일단 UBRRL = 0x0F 레지스터는 시리얼 통신할때 사용하는 것이고요
    아래와 같이 계산한 값이 실제 카운팅 되야 하는 수치입니다.

    비교모드냐 오버플로우 모드냐에 따라서 , Up 모드냐, Down모드냐에 따라서
    이 값을 TCNT0에 넣어야할 수 도 있고 OC0에 넣어야할 수도 있습니다.
    이건 데이터 쉬트를 참고하시면 될테구요..

    AVR한지가 오래되서 레지스터명은 가물가물하네요.. 요새 한참 쓰고 계시는 분들이 답변 많이 달아줄꺼에요..ㅋㅋ



    timer.gif

    PS. 분주비를 어떻게 선택하느냐에 따라 타이머의 최대 카운팅 숫자를 넘을수도 있으므로 선택을 잘 하셔야합니다.

    8비트 타이머 사용하는데 값이 255가 넘게 나온다면 분주비를 바꺼야겠지요^^;
  • No Profile
    글쓴이 naemaum4u 08.02.27 15:50 댓글 첨부 1 좋아요 0 싫어요 0
     음, 답변 감사합니다, ^^
    근데 여기서 또 궁금한게요 -- 위의 식에서 말하는 "분주비" 라는 것이, TCCR0.JPG

    위 그림에서의 숫자를 말하는게 맞나요 ? (제가 TCCR0 레지스터에 0x03이라는 값을 주었기 때문..)

    그리고, "만들고자 하는 주기" 라는 것은 타이머 카운터를 실행시키고 싶은 시간을 말하는게 맞는건가요 ?

    제 생각대로 계산했더니 -0.7695...어쩌고 하고 나오네요 -0-

    너무 원초적인 질문이라 죄송합니다..ㅠㅋㅋ
  • No Profile
    에 64분주비라고 보시면 되겠습니다.

    만들고자 하는 주기는 초단위입니다. sec단위이므로 변환이 필요하겠지요

    1ms마다 인터럽트가 발생하게 한다면

    0.001을 (1/14745600)x64 값으로 나눠주면 됩니다.

    결과값은 230.40000000000000000000000000004 이 나오는데 229 넣어주면 되겠네요..

    님께서 -가 나오고 소수점이 나온것은... 너무 큰 주기를 잡으셨거나 분주비를 잘 못선택하신겁니다.

    100ms머 이러케는 큰 시간은 만들수가 없어요..세미나에서 말했듯이 이런 경우에는 1ms를 100번 카운팅하는 방법들을 이용해야합니다.





  • No Profile
    글쓴이 naemaum4u 08.02.27 20:05 댓글 좋아요 0 싫어요 0

    ㅎㅎ 그런가보네요 ㅎ
    1us 단위로 하고 싶었거든요 ^^;;
    1ms 단위로 해도 상관없는 거니깐..적당히..
    이제 저 계산방법 만큼은 확실히 알겠네요 ㅎ
    근데 -0- 여전히 시간이 엉망..ㅠ
    1ms단위가 정확하게 나오다가 안나오다가 하네요 중간중간 한번씩 더 짧게 쳐준다는..
    휴휴  내일 또 여쭤볼께요. 기대하세요 -0- ㅋㅋ

  • No Profile

    타이머 함수내에서 연산과정이 1ms를 넘어가거나 다른 함수를 호출한다거나 어셈블리로 nop명령을 실행하는지 확인하세요.

    1us로 하고 싶으시면 분주비를 1로 하시고 하시면 되겠네요..ㅋㅋ 계산은 안해봐서...ㅋㅋ

    기대는 안하겠습니다.ㅋㅋ

    계산식은 저는 저렇게 보는게 제일 편해서 저렇게 그냥 외우고 사용합니다.ㅋㅋ

  • No Profile
    글쓴이 naemaum4u 08.02.28 20:22 댓글 좋아요 0 싫어요 0
    아 - 늦었지만 답변 감사 ^^
    빨리 이것저것 해 봐야 하는데 다른 일들이 생겨서 어제 그 자리에서 일시정지 중이예요 ^^;;
    테스트 장비도 다 뺏기고 -0-
    내일은 또 출장이라 다음주나 되야 다시 해볼 수 있겠네요 ㅠㅠ
    그럼, 다음주에 뜨거운 관심 부탁드리겠습니다. ㅋㅋ
  • 수고하세요 ^^

  • No Profile
    계산기 옆에 놓아두세요 전 항상 계산기가 있다는...
    머리가 딸려서
  • No Profile
    64 분주 비 시네요  1ms 만드시는거 같은데
    http://cafe.naver.com/ArticleRead.nhn?clubid=10750951&menuid=139&boardtype=I&page=2&specialmenutype=&articleid=1083여기 타이머 참조하세요

하드웨어 설계 및 개발에 대하여 개발자들이 자유롭게 토론하는 공간입니다.
- Q&A, 자유주재 토론, 관련 정보 공유
- 분야 : 마이크로프로세서 응용, 전기/전자(아날로그/디지털) 회로 설계, C/C++ 프로그래밍, 펌웨어,
         PCB Artwork, 트러블슈팅 등 하드웨어 설계에 관한 전반인 내용
※ 게시글에 맞는 분류를 선택하여 글을 작성해 주시면 쾌적한 사이트 운영에 많은 도움이 됩니다.
※ 하드웨어 인사이트는 회원들간의 거래정보를 게재할 뿐이지, 그 어떤 책임과 의무도 가지지 않습니다.

search
번호 분류 제목 글쓴이 조회 수 날짜
3 머신러닝, AI & 알고리즘 HOT오목 게임 알고리즘3 새로운하늘 3459 2010.03.29
2 머신러닝, AI & 알고리즘 HOT지하철 최단거리 알고리즘은?2 지워나 2861 2008.06.20
1 머신러닝, AI & 알고리즘 HOT순차 프로그램에 대한 간단한 알고리즘과 재귀 알고리즘의 속도 테스트 - by 아크마7 아크마 3062 2007.08.08
  • 경영인의 가장 중요한 과업중의 하나는 자기직원들의 불이행에 대한 변명을 없애는 것이다.
    - 타운센드
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.