2020. 11. 16. 19:10ㆍSTUDY/stm32f072,103
TIMER 잘 모르겠다.
일단 그냥 구동되는지 확인(인터럽트 방식)
1. timer2 를 이용한다(advaned timer가 아니라서)
2. led on / off 하는 것으로 추가하여 오실로스코프로 파형을 측정
1. setting(그냥 timer2는 apb1 ubs이기 때문에 64MHz 기억하자)
2. timer2 사용한다고 설정(interrupt 방식)
-clock source : internal clock로 setting(하지않으면 아래 두개 그림처럼 error 뜸)
3. code generate(alt + k)
4. code 추가(led on/off)
- interrupt start(main.c)
HAL_TIM_Base_Start_IT(&htim2);
- led toggle(stm32f1xx_it.c)
HAL_GPIO_TogglePin(LD2_GPIO_Port, LD2_Pin);
5. compile -> download -> run(ctrl+b->f11->f8)
6. 확인
주파수 64MHz = 64,000,000Hz
Prescaler = 6400(실제 기입할때는 1을 빼줌 - 이유는 나중에 찾아봐야겠음)
Counter period = 10(실제 기입할때는 1을 빼줌 - 이유는 나중에 찾아봐야겠음)
계산식
64,000,000 / 6400 = 10000
freq. = 10000 / 10 = 1000Hz = 1KHz
사진상 주파수 500Hz는 led toggle 시키는 것으로 1ms 마다 toggle 된다 즉 1KHz가 너무 잘 나온다.
ps. timer에는 polling 방식과 interrup 방식 두개가 있는데 이 차이점을 알기 전에 일단 timer 동작하는지 보고 polling 방식도 test 할 예정이다.
측정한 주파수가 500Hz나와서 왜 반이 나오지 생각했는데 toggle 시켜서 그런것으로 확인되어 설정 값대로 잘나오는것 확인하였다
그리고 1을 빼는것은 단순한것인데 다시 한번 찾아봐야겠다. 5까지 면 0,1,2,3,4,5 까지 가면 6이 되기 때문에 1을 빼지 않을까 한다.
'STUDY > stm32f072,103' 카테고리의 다른 글
12. [STM32F103 2.통신#4 uart interrupt 송신 / 수신 test] (0) | 2020.11.18 |
---|---|
11. [STM32F103 3.timer #3 기초지식] (0) | 2020.11.18 |
9. [STM32F103 3.timer #1] (0) | 2020.11.16 |
7. [STM32F103 2.통신#3] hello 전송 간단한 test (0) | 2020.11.13 |
6. [STM32F103 2.통신#2] 시리얼 통신 프로그램 설치2 (0) | 2020.11.13 |