티스토리 뷰
3. TIM(Timer) Interrupt
-이번 장은 Timer Interrupt에 대해 배운다.
-Timer Interrupt는 주로 일정 시간마다 실행되어야 하는 소스가 있을 시 사용한다
-아래 예제는 TIM10을 이용하여 1초마다 PG13의 LED On Off
CUBE MX 설정
Timer Interrupt가 발생하면 PG13이 켜지고 꺼지도록 PG13도 위와 같이 설정한다.
현재 Clock Configuration 상태는 위와 같을 것이다 기본 셋팅으로 예제를 돌릴 것이므로 빨간부분(APB2 timer clocks)가 위와 같다면 건드릴 필요없다.
NVIC Settings에서는 모든 인터럽트의 허용 여부를 설정할 수 있다.
Prescaler(PSC-16 bits value): TIM10은 APB2 CLK을 사용한다(DS9405 데이터시트의 block diagram 참고) 현재 APB2 Timer clock에 prescaler 16,000을 해준 것이다 (왜 위의 값은 15,999인데 16,000이냐면 링크의 RM0090 데이터시트의 TIMx->PSC 레지스터 참고하면 적어준 값에 1을 더해준 값이 원하는 prescaler값이라고 나와있다)
Prescaler는 0~65535의 값이 가능하다.
Counter Period: 몇 클럭을 카운터 하는지 설정하는 곳이며 현재 1000번을 센다
16Mhz / 16000 = 1Khz 이므로 1 카운터당 1ms 이다 그러므로 1000번은 1000ms = 1sec 이다
Sorce Code
/* USER CODE BEGIN 2 */
HAL_TIM_Base_Start_IT(&htim10);
/* USER CODE END 2 */
/* USER CODE BEGIN 4 */
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
if(htim == &htim10){
HAL_GPIO_TogglePin(GPIOG,GPIO_PIN_13);
}
}
/* USER CODE END 4 */
실행 결과
PG13의 LED가 1초마다 깜빡인다
'STM32Fxx' 카테고리의 다른 글
STM32F429 - DAC를 이용한 LED밝기 조절 (0) | 2018.09.10 |
---|---|
STM32F429 - TIM Counter (CUBE MX) (0) | 2018.09.10 |
STM32F429- TIM PWM 제어 (CUBE MX) (0) | 2018.09.10 |
STM32F429_CUBE MX를 이용한 EXTI 설정 (0) | 2018.09.10 |
STM32F429 - CUBE MX를 이용한 - GPIO제어 (0) | 2018.09.10 |
- Total
- Today
- Yesterday
- CUBE MX GPIO
- 파일복사
- vba
- 틀고정
- STM32F GPIO
- 수은건전지
- 중기청
- STM32F429
- atmega128 설치
- STM CUBE MX
- Excel
- atmel studio7
- MCG
- 폴더생성
- Dir
- filecopy
- 전세지킴보증서
- STM 입출력
- 중소기업청년
- 홈서비스
- 정부주택대출
- STM32F429 GPIO
- 제목행
- STM GPIO
- atmega 설치방법
- atmega 개발
- atmel studio 설치
- GPIO
- 착한운전자마일리지
- STM32F
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |