[Cortex-M3] 4. Systick, TimerX 제어하기 (1)

2019. 9. 8. 15:36개발 관련 학습정리/ARM(cortex-m3) Register 분석

반응형

오늘은 systick을 이용하여 타이머를 만들고, millis구조를 사용하는 방법을 배웠다.

 

systick은 기본적으로 72MHz를 사용하며, 분주를 사용하여 헤르츠를 낮출수 있다.

이제 systick을 다룰 레지스터를 알아보자.

 

 

 

 

 

1. STK_CTRL (SysTick control and status register)

32비트중 4비트만 사용한다.

 

 

여기서는 enable에서 필요한 ENABLE비트만 이해하고 다음 시간에 배우는걸로 넘어가도록 하자.

ENABLE (counter enable)

0 - counter disable

1- counter enable

 

 

 

 

 

 

 

2. STK_LOAD (SysTick reload value register)

 

이 RELOAD가 24비트로 이루어진 레지스터는 분주비를 설정하는 레지스터이다.

72MHz로 들어오는 주파수를 분주로 나눌때 그 분주비를 결정한다.

RELOAD (reload value) : 2^24(0~16,777,216)‬까지의 분주비를 세팅한다.

 

 

 

 

 

 

 

 

3. STK_VAL (SysTick current value register)

 

CURRENT비트로 이루어져 있으며, systick 카운트를 하는 레지스터 이다.

 

 

 

 

 

 

 

systick을 제어하는 레지스터들은 비교적 간단하게 생긴편이며, AVR에서부터 나온 분주비 개념만

확실히 알아놓으면 ARM 타이머도 그리 어렵진 않을듯하다.

그럼 systick에서 APB를 거쳐서 카운팅되는 타이머는 다음 차시에 알아보도록 하자.

ARM으로 배우는 임베디드 리눅스 시스템:CPU에서 안드로이드까지 총망라, 한빛미디어
반응형