회원가입 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
번호 분류 제목 글쓴이 조회 수 날짜
724 자유주제 HOT오늘에서야..6 naemaum4u 2953 2008.03.05
723 자유주제 HOT^^2 빛나는 영혼 2997 2008.03.04
722 자유주제 HOT뭐입니까.2 홍홍 3047 2008.03.04
721 전기전자 아무거나 HOT임베디드 소프트웨어 공모전..2 뱀뷀뷀 673 2008.03.04
720 마이크로프로세서 HOTor-cad 입문..............................5 천상 898 2008.03.04
719 전기전자 아무거나 HOT2족서보모터추천3 あさひ 908 2008.03.04
718 자유주제 HOT이런 암울할때가...4 あさひ 2556 2008.03.04
717 마이크로프로세서 HOTAVR 설치 제거 오류6 naemaum4u 1070 2008.03.03
716 자유주제 HOT한주의 시작이네요~ ^^5 행복하면 6310 2008.03.03
715 자유주제 HOT이제..개강 시즌이로군요...4 commidi 2613 2008.03.03
714 마이크로프로세서 HOTICC나 GCC로 짜여진 프로그램을 코드비전용으로 변환 가능한지?5 파파준 1011 2008.03.01
713 자유주제 HOT반가와요1 hugh 2587 2008.02.29
712 Allegro & OrCAD HOT넷리스트 만들면요...15 무수리 1414 2008.02.29
711 마이크로프로세서 HOTRTOS - commidi님5 아크마 706 2008.02.28
710 ECAD 아무거나 HOT허접한 질문입니다..7 무수리 3154 2008.02.28
709 자유주제 HOT정모동영상8 아크마 2469 2008.02.27
708 자유주제 HOT모두들 안녕 하세요~ ^^;;3 행복하면 2992 2008.02.27
마이크로프로세서 HOT타이머인터럽트..9 naemaum4u 1419 2008.02.27
706 자유주제 HOT늦은 정모 후기 캬캬2 빛나는 영혼 2863 2008.02.27
705 전기전자 아무거나 HOT트랜지스터의 스위칭 속도를 올리는 팁 좀 알려주세요.10 아크마 2389 2008.02.27
  • 한 번 실패와 영원한 실패를 혼동하지 마라.
    - F.스콧 핏제랄드
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.