• 카테고리

    질문 & 답변
  • 세부 분야

    임베디드 · IoT

  • 해결 여부

    미해결

임베디드 공부

22.09.18 20:10 작성 조회수 343

0

안녕하세요

강의를 수강하면서 강사님은 이러한 내용들을 어떻게 공부하셨는지 궁금했습니다.

  1. 각종 MCU를 활용함에 있어서 인터럽트나 ADC, PWM 등의 사용법을 알려면 각 MCU별 example을 스터디 하는 것이 최선인가요??

  2. stm 의Cube MX처럼 친철한 툴을 사용하지 못할때(예를들어, ESP나 NRF) 간단한 인터럽트를 사용하더라도 다양한 문제가 생길 것 같은데 이럴때 강사님만의 팁이 있을까요??

답변 1

답변을 작성해보세요.

1

안녕하세요! 올려주신 이 질문 역시 알림이 안떠서 확인이 늦었습니다 ㅠ 답이 늦어져 죄송합니다!

Q1. 각종 MCU를 활용함에 있어서 인터럽트나 ADC, PWM 등의 사용법을 알려면 각 MCU별 example을 스터디 하는 것이 최선인가요??

A. 이런 응용 기술에는 Bottom-up과 Top-down 방식의 공부법이 존재하는데요,

빠르고 시간 효율적인 공부법은 Top-down 방식입니다. 남이 짜놓은 코드와 이미 구현되어있는 기술들을 먼저 구동시켜보고, 코드등을 조금씩 바꾸면 결과가 어떻게 달라지는지 파악해가며 공부하는 방식입니다. 이 방식은 실패할 확률이 낮고, 빠르게 시스템을 이해 할 수 있기 때문에 추천드리는 방식입니다.

하지만 기초가 안되어있는 상태에서 Top-down 방식으로만 공부하면 응용이 잘 안되기 때문에 기초 과정같은 경우엔 Bottom-up 방식이 더 좋을 수 있는데요, 프로그래밍 언어나 MCU의 기초같은 경우엔 Bottom-up으로 먼저 기초지식을 쌓는 것이 좋습니다.

질문에 대한 답을 드리자면, 제가 질문자님의 수준을 모르기 때문에, 만약 기초가 잘 되어있으시다면 Top-down 방식이 좋을 것 같고 그게 아니라면, Bottom-up으로 기초를 좀 잡으시는 것이 좋다 라고 생각됩니다.

Q2. stm 의Cube MX처럼 친철한 툴을 사용하지 못할때(예를들어, ESP나 NRF) 간단한 인터럽트를 사용하더라도 다양한 문제가 생길 것 같은데 이럴때 강사님만의 팁이 있을까요??

A. 친절한 툴이 없는 경우, 칩 제조사에서 제공하는 예제가 있을텐데요, 해당 사용하려는 칩 기능 페리페럴이 포함된 예제를 먼저 돌려보고, 제가 필요한 기능만 남겨놓고 그 외의 모든 코드를 지우고 거의 빈 프로젝트처럼 만든 후에 거기서부터 빌드업을 시작합니다.

예를들어 타이머 인터럽트를 사용해야 한다면, 타이머 인터럽트 기능이 포함된 가장 간단한 예제 프로젝트를 먼저 돌려봅니다. 잘 돌아가는게 확인된다면 이제 타이머 인터럽트 기능을 제외한 다른 모든 코드를 하나씩 지우기 시작합니다. 그럼 타이머 인터럽트를 위한 코드들만 덩그러니 남은 빈 프로젝트가 됩니다. 그 다음부터 여기에 제가 넣고 싶은 기능들을 하나씩 추가합니다.

이것의 핵심은, 딱 제가 필요한 기능만 남기고 나머지를 다 지워서, 다른 프로젝트에서도 써먹을 수 있게 어떤 코드가 필요한 코드인지를 파악하는 것 입니다.

여러 기능이 포함된 코드일수록 내가 필요한 코드가 뭔지 파악하는 것이 어렵기 때문에, 최대한 몸집을 줄여서 빨리 파악할 수 있도록 하는 것이죠!