작성
·
274
0
56 uint8_t g_100ms_flag = 0;
-> TIM1 인터럽트 주기 = 50ms 인데, 위 변수에 100ms라고 하는것은 토글에 의한 PB3
핀의 신호 주기가 2배가 되기 때문인가요? (아래 그림 cnt_100ms 변화도 맞게 그린건가요?)
-> 그리고 강의 초반에 division = 2 는 어떤것에 영향을 주는것인가요??
답변 1
1
50ms 주기인데, 변수명이 잘못되었네요 ㅠㅠ
g_50ms_flag를 사용해야 되는데, 오타입니다 ㅎㅎ
divider = 2는 특별한 의미는 없습니다.
보통 타이머의 주기를 설정하기 위하여 아래와 같은 식이 사용됩니다.
타이머 주파수 = (System clock) / (Prescaler * divider)
낮은 주파수(큰 주기)를 만들기 위하여 divider 값을 크게 해서 사용합니다.
divider로 인해서 설정가능한 주파수 범위가 더 넗어진다고 생각하면 됩니다.
감사합니다 ~!!
아하 ㅎㅎㅎ 감사합니다.
추가로 질문이 있습니다...
main.c 코드의 454번째 줄에서 "HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_4);" 를 사용하셨는데..
-> "HAL_GPIO_TogglePin(GPIOB, GPIO_PIN_4);" 라는 코드만 보면 High 출력 상태인지 Low 출력 상태인지를 알 수가 없고, 단순히 인터럽트 잘 되고있는지 확인하는 용도 잖아요?!
-> gpio 핀에서 계속 High 신호 or low 신호를 출력하도록 하려면 어떤 함수를 써야 하나요..??