강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

dhanbi1님의 프로필 이미지
dhanbi1

작성한 질문수

전동킥보드로 배우는 임베디드 실전 프로젝트

전동킥보드 펌웨어 코드 분석 (2)

TIM1 interrupt function 주기.

작성

·

6

0

안녕하세요. 해당 강의에서

TIM1->RCR = 0x0001; 은 50us(20khz)로 나와 TIM1 interrupt function이 20KHz 동작으로 알고 있습니다.

하지만, 다운 받은 코드는 해당 주석이 100us로 나와있는데, 어떤게 맞는지 궁금합니다.

제 의견으로는 PWM 함수에서 Counter-aligned mode3으로 설정되서 RCR=1이 Edge-aligned mode의 2주기가 아니라 1주기동작인 20Khz가 맞는거 같은데,

GPT에서는 RCR=0 → 매 주기(50 µs)마다 인터럽트 → 20 kHz 인터럽트

RCR=1 → (RCR+1)=2 → 2주기(100 µs)마다 인터럽트 → 10 kHz 인터럽트

라고 해서 2주기라고 하는데 무엇이 맞는지 답변 부탁드립니다.

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. dhanbi1님.

TIM1의 RCR(Register Control Register) 설정과 이에 따른 인터럽트 주기에 대한 질문을 주셨네요. 이 주제는 임베디드 시스템에서 타이머 설정의 중요한 부분입니다.

TIM1의 RCR에 대한 이해

  • RCR 값의 의미: RCR(Repetition Counter Register)는 타이머 주기의 반복 횟수를 설정하는 데 사용됩니다. 이 값이 0일 경우 한 주기마다 인터럽트가 발생하게 됩니다. 만약 RCR1로 설정되면 (RCR + 1)번, 즉 2주기마다 인터럽트가 발생합니다.

  • 타이머 모드: Counter-aligned mode3 설정에 따라 PWM 신호가 조정됩니다. 이 모드가 주기의 동작을 다르게 해석할 수 있지만, RCR 값 자체의 기본적인 작동 원리는 동일합니다.

주기 계산 및 확인

  • RCR=0: 매 주기(50 µs)마다 인터럽트가 발생하여, 주파수는 20 kHz입니다.
  • RCR=1: 2주기(100 µs)마다 인터럽트가 발생하여, 주파수는 10 kHz가 됩니다.

이러한 내용은 GPT의 설명과 일치하는 부분이 있습니다. 전달받은 코드를 기반으로 주석이 100 µs로 표기되어 있는 경우, RCR=1을 기준으로 하여 인터럽트가 설정되어있다는 의미로 해석할 수 있습니다.

강의 내의 구체적인 설정과 코드 검토를 통해 확인하실 수 있으며, 강의 자료와 제공된 코드 주석을 잘 숙지하시면 이해에 도움이 될 것입니다. 관련 설정에 대해 전동킥보드로 배우는 임베디드 실전 프로젝트 강의에서 자료를 재확인해 보시는 것도 도움이 될 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

dhanbi1님의 프로필 이미지
dhanbi1

작성한 질문수

질문하기