본문 바로가기
임베디드 (Embedded)/STM32

[STM32] NUCLEO-F429ZI 타이머2,3,4를 이용하여 버튼 led 토글하기 및 주파수 계산

by 기딩 2023. 10. 26.
728x90

타이머를 위한 보드 설정은 전 글에 나와있으니 참고하자.

https://silvow94.tistory.com/36

 

[STM32] NUCLEO-F429ZI 타이머 카운트 설정 및 HAL_IncTick(), HAL_SYSTICK_Callback()을 이용하여 led 깜빡이기

board selector가 아닌 mcu/mpu로 프로젝트를 만든다. 그럼 다음과 같이 핀 설정이 된다 Timers > RTC > 에서 Activate Clock Source를 눌러 활성화를 해준다. 위의 2번째 탭 Clock Configuration에서 위의 설정을 모두

silvow94.tistory.com

이번에는 타이머 동작 주파수를 이용하여 원하는 주기를 설정해보려 한다.

 

먼저, 타이머의 Clock Source를 Internal Clock으로 설정하고

우리는 주파수 계산을 통해 Prescaler와 Counter Period(ARR)을 이용하여 주기를 설정할 것이다.

설정을 마쳤으면, 주기와 주파수에 대해 알아보자.

주파수(Frequency) : 1초 동안 신호가 진동한 수 (단위 : Hz)

주기(Time Period) : 1회 반복하는데 걸리는 시간

 

예를 들어, 1Hz는 1초에 1번 주기적인 현상이 발생하므로 주기는 1초가 된다.

2Hz는 1초에 2번 주기적인 현상이 발생하므로 주기는 0.5초가 된다.

즉, $$ 주기=\frac{1}{주파수} $$ 이다.

 

주기와 주파수의 관계는 알았으니, 주파수를 계산하는 법을 알아보자 

타이머 동작 주파수 식은 다음과 같다.

$$ 타이머\,동작\,주파수 =\frac{\frac{main\,clock}{prescaler + 1}}{period + 1} $$

 

메인 클럭은 보드마다 다른데

Nucleo 실습 보드의 메인 클럭은 84Mhz(90Mhz max)를 사용한다. (Clock Configuration)

 

728x90