2019. 9. 9. 16:24ㆍ개발 관련 학습정리/ARM(cortex-m3) Register 분석
이번에는 systick에 이어서 ARM의 타이머를 알아보도록 하자
먼저 sysclk이 AHB 프리스케일러로 들어온다. 여기서 분주비로 나눠서 시스템 클락, APB1, APB2로 제공된다.
APB1에서는 분주비로 나눠서 APB1의 페리페럴에게 제공된다.
또한, 타이머 2/3/4에게 제공되며 아까 나뉜 클락을 2배로 증폭시킬수도 있다.
APB2에서도 분주비로 나눠서 APB2의 페리페럴에게 제공한다.
이제 타이머들을 제어할 레지스터들을 다뤄보도록 하자.
1. TIMx_CR1 (TIMx Control Register1)
Bit 7 ARPE(Auto-reload preload enable) : 자동 리로드 프리로드 활성화 비트
Bit 4 DIR(Direction) : 타이머 방향을 조정하는 비트
Bit 0 CENt(Counter enable) : 타이머 카운터 활성화 비트
2. TIMx_SR (TIMx Status Register)
Bit 6 TIF(Trigger interrupt flag) : 트리거 인터럽트 플래그 비트
Bit 0 UIF(Update Interrupt flag) : 타이머 카운터 활성화 비트
3. TIMx_CNT (TIMx Counter)
CNT (Counter) : 0~25565까지 카운트의 최댓값을 설정 하는 비트이다.
4. TIMx_PSC (TIMx Prescaler)
PSC (Precsaler bit) : cortex-m3의 기본 72Mhz를 나누는 프리스케일러 비트이다.
0~25565분주까지 설정 할 수 있다.
5. TIMx_DIER (TIMX DMA/interrupt enable register)
CCXIE (Capture/Compare X interrupt enable) : 타이머 모드인 capture/compare 모드를
해당 타이머에서 enable 한다.
UIE (Update interrupt enable) : 타이머 update 인터럽트를 enable하는 비트이다.
설명하지 못한 레지스터들의 비트들도 있지만 가장 많이 사용하는 위주로 정리해 보았다.
다음번엔 ADC와 DMA에 대하여 정리해보도록 하겠다.
'개발 관련 학습정리 > ARM(cortex-m3) Register 분석' 카테고리의 다른 글
[Cortex-M3] CMSIS 라이브러리 - 1 (RCC / NVIC / GPIO) (0) | 2019.11.19 |
---|---|
[Cortex-M3] 6. DMA와 ADC (0) | 2019.09.16 |
[Cortex-M3] 4. Systick, TimerX 제어하기 (1) (0) | 2019.09.08 |
[Cortex-M3] 3. EXTI(외부 인터럽트)와 AFIO, NVIC (1) | 2019.09.02 |
[Cortex-M3] 2. Cortex-M3의 GPIO 두번째 (0) | 2019.08.27 |