마하전자기술연구소 LOGO

제품검색 고객센터053-604-2355
기술자료실

Home > 기술자료실 기술자료실

제 목 6) 타이머 0의 사용법(인터벌 타이머)
첨부파일


타이머 0의 사용법

1. 인터벌 타이머로서 사용한다

일정시간 간격으로 타이머부터 새치기를 받아 처리를 한다
경우는 의외로 많이 있습니다.
거기서 이 일정 간격으로 새치기를 넣는 이른바 인터벌
타이머로서의 움직이는 방법을 설명합니다.

 (1) 카운터의 설정치의 구하는 방법
  PIC16 시리즈의 타이머(TMR0)는, CPU 팁의 클락을
  기초로 해 카운트 하게 되어 있습니다.
  따라서 있는 인터벌 시간을 내기 위한 카운터치는 아래와 같은
  님이 해 요구합니다.

    (인터벌 시간)/(CPU 클락 x4)

    례 CPU의 수정 발진자가 10 MHz때에 20 msec의
       인터벌과 하기 위해서는,
         20msec*1000/0.1usec*4=50000

 (2) 프리스케이라와의 관계
   TMR0에는 8비트의 프리스케이라가 접속되고 있습니다.
   따라서 8비트+8비트로 합계 16비트로 65,535까지의
   카운트를 할 수 있습니다.
   프리스케이라의 움직이는 방법은 2,4,8,16,32,64,128,256 카운트의
   8 종류가 되고 있습니다.
   따라서 카운터의 설정의 방법은 아래와 같이로 요구합니다.

    TMR0의 카운트치=필요한 카운트치/프리스케이라 설정치

  예상례 20msec 의 타이머로 하려면 ,
          50000/256= 약 195(16진으로 C3H)가 됩니다.
     따라서 카운터의 설정치는 결국 아래와 같이가 됩니다.
     프리스케이라→ 256 카운트
                이외에서는 TMR0가 오버플로우 한다.
     TMR0  → 카운터는 업 카운터이므로
              FFH-C3H=3 CH로 3 C가 설정치가 된다.

 (3) 카운터의 설정
   실제로 카운터에 설정치를 출력하려면 , 아래와 같은님이 합니다.

 ·프리스케이라의 설정
    BSF    STATUS, RP0  ;페이지 1에 변환
    MOVLW   087H     ;256카운트 모드치
    MOVWF   OPTION_REG  ;모드 설정 출력
    BCF    STATUS, RP0  ;페이지 0에 변환
 ·TMR0에 출력
    MOVLW   03CH     ;카운트치 로드
    MOVWF   TMR0     ;TMR0에 출력

 (4) 인터벌 타이머로서의 동작
   인터벌 타이머로서 움직이려면 타이머의 카운트업
   그리고 비율 붐비어 왔을 때에, 재차 타이머를 설정해 계속해 다음의 동작을
   하도록(듯이) 합니다.

    메인 루틴 새치기 처리 루틴
       ↓              ↓
    프리스케이라 설정 타이머 인터럽션 보고 플래그 클리어
       ↓              ↓
    TMR0에 카운트 설정    TMR0에 카운트치재설정
       ↓              ↓
     새치기 허가         -----(다른 처리)
   →→→↓              ↓
  ↑ 새치기 대기 루프      RETFIE
  |___↓

 (5) 실제의 코딩예
   상기의 플로우로 실제로 코딩 한 예를 아래와 같이에 나타냅니다.
   CPU는 10 MHz로, 인터벌은 20 msec의 예입니다.

    LIST    P=PIC16F84  ;CPU의 지정
    INCLUDE  "P16F84.INC" ;정수 라벨 파일
    ORG    0       ;RESET의 입구
    GOTO    MAIN      ;메인 루틴에
    ORG    4       ;새치기의 입구
    GOTO    INTR      ;새치기 처리 루틴에
MAIN
    BSF    STATUS, RP0  ;페이지 1에 변환
    MOVLW   087H      ;256카운트 모드 지정
    MOVWF   OPTION_REG   ;pre-set 카운터에 출력
    BCF    STATUS, RP0  ;페이지 0에 변환
    MOVLW   03CH      ;카운트치 로드
    MOVWF   TMR0      ;TMR0에 출력
    BSF    INTCON, T0IE  ;타이머 인터럽션 보고 허가
    BSF    INTCON, GIE   ;전체 새치기 허가
IDLE
     NOP
    (다른 처리)
    GOTO    IDLE      ;새치기 대기 루프
INTR
     BCF    INTCON, T0I  ;새치기 플래그 클리어
    MOVLW   03CH      ;카운트치 로드
    MOVWF   TMR0      ;TMR0에 출력 (다른 처리)
    RETFIE          ;새치기 허가 리턴

그런데 다음는 타이머의 사용법의 그 2입니다.

목록보기

www.1chip.com, www.1chip.co.kr
www.micom114.com
자료실바로가기

대구광역시 북구 산격2동 1629 산업용재관 10동 13호 (2층) / Tel. 053-604-2355 / Fax. 053-383-2354 / E-mail. maha@paran.com