본문 바로가기
전자공학/LoRa 통신

Timer(타이머)와 Counter(카운터)의 원리 및 종류(2) - EFM32

by ohj921189 2020. 5. 15.
반응형

목차

 

1. Timer에 대해서

 - Timer란?

 - EFM32 Timer

 - Clock Sources

 - Prescaler?

 - Interrupts, PRS and DMA

 - Counting Modes and Timer Setup

 - Capture/Compare - Input Capture

 - Capture/Compare – Output Capture

 - Quadrature Decoding

 

2. Counter에 대해서 

 - Real Time Counter란?

 - Real Time Counter의 종류 - RTC

 - Real Time Counter의 종류 - RTCC

 - Real Time Counter의 종류 - Backup RTC

 

 

 

1. Timer에 대해서  - Prescaler?

 

- 타이머에 공급하는 입력 클럭의 속도를 조절하는 분주기입니다.

 

- 주로 Control Logic 앞에 위치합니다.

 

- 타이머/카운터의 메모리량이 정해져 있기 때문에 프리스케일러를 이용하여 분주하고 나온 클럭을 타이머 클럭으로 사용합니다.

 

- 분주비가 1:N일 경우 시스템 클럭이 N번 입력될 때 프리스케일러를 통과한 클럭은 1번 클럭이 발생하고 타이머는 1번 클럭이 발생하였다고 인지합니다.

 

- 이런 원리를 이용하여 8,64,128 등을 한번에 묶어서 클럭을 계산합니다.  

 

 

1. Timer에 대해서 - Interrupts, PRS and DMA

 

타이머에는 인터럽트를 트리거할 수 있는 5개의 이벤트가 있습니다. 버퍼 오버플로를 제외한 모든 것은 PRS 신호와 DMA 요청으로 발생하게 됩니다.

 

다음은 인터럽트를 트리거 하는 5가지의 이벤트입니다.

 

• Counter Underflow

• Counter Overflow

• Compare Match (one per Compare/Capture channel)

• Input Capture (one per Compare/Capture channel)

• Buffer Overflow (one per Compare/Capture channel)

 

- 하나 이상의 인터럽트를 활성화하려면 TIMERn_IEN 레지스터는 해당 인터럽트 활성화 비트로 작성되어야 합니다.

   또한 해당 인터럽트 라인에 대한 NVIC 벡터가 활성화되어야 합니다.

 

- Em라이브러리에서 타이머 인터럽트를 활성화하는 기능이 있습니다: void TIMER_IntEnable(TIMER_TypeDef *timer, uint32_ t 플래그).

 

-TIMERnTIMERn_IEN 레지스터에 관계없이 또는 PRS 채널에 의해 선택된 경우 위의 출력 이벤트에 대해 항상 반사 출력 (하나의 HFPERCLK 사이클 펄스)을 생성합니다.

 

-인터럽트가 발생하면 TIMERn_IF 레지스터에서 인터럽트 플래그를 읽고 TIMERn_IFC를 작성하여 지울 수 있습니다.

 

반응형

댓글