목차
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 플래그).
-TIMERn은 TIMERn_IEN 레지스터에 관계없이 또는 PRS 채널에 의해 선택된 경우 위의 출력 이벤트에 대해 항상 반사 출력 (하나의 HFPERCLK 사이클 펄스)을 생성합니다.
-인터럽트가 발생하면 TIMERn_IF 레지스터에서 인터럽트 플래그를 읽고 TIMERn_IFC를 작성하여 지울 수 있습니다.
'전자공학 > LoRa 통신' 카테고리의 다른 글
Timer(타이머)와 Counter(카운터)의 원리 및 종류(4) - EFM32 (0) | 2020.05.19 |
---|---|
Timer(타이머)와 Counter(카운터)의 원리 및 종류(3) - EFM32 (0) | 2020.05.17 |
Timer(타이머)와 Counter(카운터)의 원리 및 종류(1) - EFM32 (0) | 2020.05.13 |
오실레이터(Oscillator)의 종류 및 원리에 대한 설명 - (4) (0) | 2020.05.09 |
오실레이터(Oscillator)의 종류 및 원리에 대한 설명 - (3) (0) | 2020.05.07 |
댓글