


파란색 동그라미 -> system clock이 중요하다. 여기 후로는 증가는 없다. 나눗셈만있다.
AHB가 가장 큰 총괄 버스 여기서 2로 나누면 나머지는 다 그걸로 연산해야겠지. 여기서 내가 쓸 타이머의 클럭이 얼마냐 알 수 있다.



reload value를 만나면 0으로 초기화된다. -> up counter
UEV가 이벤트를 띄우면 interrupt handler한테 딱 말해주면 되겠다.
CCR -> capture/compare register
ARR -> auto-reload value (auto는 크게 중요하지 않다.)
PSC -> pre-scaler
CNT -> counter 값이 계속 증가함

파란색 동그라미는 input capture 기능 때문에 들어온 것.

ST-Link가 있어야 쓸 수 있는 클럭

SystemClock_Config 함수의 이 부분이 바뀌었다.
Tim7은 외부에서 클럭을 받을 수 없음.

타이머 특성에 맞게 초기화 해주는 코드
HAL_Delay는 1ms가 단위

TIM3도 새롭게 들어왔다.
1) Counter 모드 (Time-Base Unit): 카운터 값이 증가 또는 감소하면서 카운터(CNT) 값이 ARR(또는 0)이 될 때 인터럽트가 발생
Ex) APB = 8MHz, Prescaler = (800 - 1), ARR = (10000 - 1) -> 1Hz 이벤트 발생
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
if(htim->Instance == htim3.Instance)
{
BSP_LED_Toggle(LED2);
}
}
HAL_TIM_Base_Start_IT(&htim3);



