[펌웨어] 타이머

정재훈·2022년 5월 2일
0

FirmWare

목록 보기
5/7

Timer

타이머 : 몇번의 신호가 들어 올 때 마다, 한번 씩 Interrupt 발생시키 는 장치
TIMER마다 조금 씩 다르다
TIMER 1 : 세부 설정이 가능한 Interrupt ( 데이터 시트 참고 필요
TIMER 2,3,4 : 범용적 사용 가능

오실로스코프를 통해 주기 및 주파수를 확인할 수 있다.
오실로스코프 : 시간의 흐름에 따른 전압차(신호)를 확인하기 위한 계측기
타이머 사용 이유 : 어떤 주기를 갖는 파형을 만들기 위해

장치마다 정해진 carrer 주파수가 있다.
ex) 서보모터 50hz
주파수에 따라 플리커 현상도 발생할 수 있다.

코드

Internel Clock을 사용하여 8[Mhz]를 사용한다.

분주비를 8000으로 하여 1[khz]로 보내게 설정해준다. 주기는 1[ms]가 된다.
Count Period를 1000으로 설정해주었기 때문에, 결과적으로 1000[ms] 즉, 1초 마다 신호가 간다.

1초 주기로 UART에 # 전송 코드
HAL_TIM_PeriodElapsedCallback를 사용

uint8_t ch = '#';

void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim)
{
  HAL_UART_Transmit(&huart2,&ch,1,100);
}

main 윗 부분
==============================
main 아랫부분

HAL_TIM_Base_Start_IT(&htim2);  // 타이머 시작 코드
profile
여러 방향으로 접근하는 개발자

0개의 댓글