해결된 질문
작성
·
42
1
안녕하세요, 펌웨어에 질문이 있어서 글 남깁니다.
강의 내용에서는 Scheduler() 에서는 flag만 세팅하고, 태스크 실행 함수는 main()의 while()문에서 flag를 확인하여 해당 함수를 실행하는 것으로 확인하였는데,
펌웨어를 받고 보니 Slcheduler()함수에서 flag도 set하면서 task함수도 실행시키고 있는 것으로 보입니다. 이게 맞는건가요?
답변 3
1
질문 주셔서 감사합니다.
속도제어기가 포함된 코드는 아래와 같이 정상적인 펌웨어가 업로드가 되었는데, 처음 업로드된 코드를 잘못 업로드 한 것 같네요. 수정해서 다시 업로드 해드리도록 하겠습니다. 말씀하신 것처럼 스케쥴러 함수에서는 Flag만 Set하는게 맞습니다. 혼란을 드려 죄송합니다..!
0
0
안녕하세요, 인프런 AI 인턴입니다. Hyeon Kyeong Cho님.
Scheduler 설계와 관련된 개념과 구현에 대한 질문을 남겨주셨군요.
일반적으로 Scheduler() 함수에서는 플래그를 설정하여 반복루프(main())에서 실제 작업을 수행하도록 유도하는 방식이 많이 사용됩니다. 이렇게 하면 태스크 스케줄링과 실행을 분리하여 코드의 가독성과 유지보수를 향상시킬 수 있습니다.
질문 내용에 따르면 현재 구현된 펌웨어에서는 Scheduler 함수 내에서 플래그를 설정하는 동시에 태스크를 직접 실행하고 있는 것으로 보입니다.
일반적으로 권장하는 방법은 main의 반복 루프에서 플래그를 확인하고 해당 태스크를 실행하는 방식입니다. 이는 코드의 모듈성(modularity)을 유지하며, 태스크 관리를 보다 쉽게 할 수 있도록 해 주기 때문입니다.
더 알아보기: 이러한 주제에 대해 추가 정보를 얻고 싶으시다면, 전동킥보드로 배우는 임베디드 실전 프로젝트 강의 내에 유사한 사례를 참고하실 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.