오늘 포스팅할 내용은 소프트웨어 Timer입니다. 소프트웨어 Timer는 MCU의 페리페럴 중 하나인 하드웨어 타이머와 다르며 오히려 PC 소프트웨어의 Timer에 가깝습니다. 구현하고자하는 소프웨어 Timer는 설정한 주기가 되면 자동으로 등록한 Callback 함수를 실행시켜 줍니다. 소프트웨어 Timer이기 때문에 Tick을 증가시켜줄 MCU의 하드웨어 Timer가 하나 필요합니다. 먼저 자주 사용하는 주기를 파악 합니다. 최소단위를 10ms으로 정하고 10ms 주기의 하드웨어 Timer를 하나 만들어 인터럽트에서 소프트웨어 Timer의 Tick을 증가시켜 줍니다. 먼저 헤더파일로 전체 윤곽을 만듭니다. Timer 핸들러의 typedef도 선언되어 있습니다. #ifndef SRC_TIMER_H_ #..
STM32CubeMX에서 기본적으로 생성되는 코드는 Flash 메모리에 IRQ Handler들을 올립니다. 그래서 Interrupt가 발생하게 되면 Flash에 올라가 있는 IRQ Handler를 호출하여 해당 Interrupt를 수행하게 됩니다. 간혹 Application이 Flash가 아닌 RAM에서 실행되어야 하는 경우가 생기는데요, 이러한 경우 보통 IRQ Handler를 RAM function으로 만들어 Interrupt가 발생하면 RAM 상에서 해당 Interrupt를 처리하도록 합니다. 여기서의 맹점은 무엇일까요? 바로 IRQ Handler의 Vector Table이 Flash에 있다는 것입니다. Interrupt가 발생하면 Flash의 Start 영역에 기록된 Vector Table을 참조..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.