전기차충전기
[STM32] STM32F4 강의 - TIM 인터럽트
hyeok0724.kim@gmail.com
2020. 12. 7. 00:04
반응형
Index
1. Timer 기본 설정
2. 타이머 인터럽트 코드 작성
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:
반응형