출처: https://louie0724.tistory.com/359
1. Timer 기본 설정
– 설정 전에 기존의 HCLK 값이 100MHz 임을 확인함
– TIM7 활성화함
– Prescaler와 Auto-Reload 값을 변경함
※ 강의 예제
Auto Reload Register = Period
HCLK = 168MHZ
APB1 TIM CLK = HCLK / 2 = 84MHz
APB2 TIM CLK = HCLK = 168MHZ
즉 한번 올라가는데 1/84,000,000[s]
Prescaler: 클럭을 천천히 사용하도록함
최대 2^16 – 1 까지 샐 수 있음
한번 증가할때 다음과 같이 설정 할 수 있음
TIM CLK = APM1 TIM CLK / Prescaler
ex) Prescaler를 10,000으로 하게 되면
TIM CLK는 1 / 8400 이 됨. 한번 증가할 때 1 / 8400[s]가 됨
이때 Auto Reload Register를 8400으로 하면 8400번 증가 할때
인터럽트가 1번 발생함. 계산하면 1초에 한번 인터럽트가 발생함.
– 타이머 인터럽트 설정
2. 타이머 인터럽트 코드 작성
– TIM7_IRQHandler -> HAL_TIM_IRQHandler -> HAL_TIM_PeriodElapsedCallback
– 1초마다 LED 깜빡이도록 함
– TIMER 활성화 실행
Reference: