안녕하세요 ChrisP 입니다.
디지털 알람시계 프로그래밍 챌린지의 첫 도전과제가 공개되었습니다.
본 도전과제는 몸풀기 과제인 "1-1. 버튼 입력으로 LED 토글 1" 로써,
버튼을 누르는 순간과 떼는 순간에 LED를 토글하는 아주 간단한 과제입니다.
하지만 이런 기능을 직접 구현해보지 않았다면 약간은 고민이 필요할 수도 있습니다.
제한 조건은 다음과 같습니다.
1. HAL_Delay() 함수 사용 금지 (Blocking mode로 동작하기 때문)
2. HAL_GPIO_TogglePin() 함수 사용 금지 (HAL_GPIO_WritePin() 사용할 것)
3. EXTI 사용 금지 (HAL_GPIO_ReadPin() 사용할 것)
특히 위의 제한 조건 중 1번, HAL_Delay() 함수는 앞으로 본 챌린지동안 사용할 수 없습니다.
딜레이 함수 사용 시, 전체 시스템이 딜레이되기 때문이죠.
앞으로 버튼을 짧게, 길게 누르기, 일정 시간동안 부저 울리기 등의 딜레이 타임이 필요한 기능들이 나올텐데, 그때도 HAL_Delay()가 아닌 Non-blocking mode 방식으로 딜레이 효과를 주어야 합니다.
챌린지를 참여하실 분은 본 도전과제를 구현하여 영상과 소스코드를 본인의 블로그나 소셜미디어에 올려주시고 댓글이나 엠하이브 네이버카페에 링크를 올려주시면 확인 후 피드백 드리겠습니다.
실력을 향상시키고 싶은 분들의 많은 참여바라며,
다음 몸풀기 과제 2번으로 다시 돌아오겠습니다.
ChrisP
※ 보드의 회로나 하드웨어 구동 개념은 아래 STM32F4 속성으로 따라하기 강좌에서 설명하므로, 본 챌린지에서는 생략합니다.
▷▶ STM32F4 속성으로 따라하기 무료 강좌 ◁◀
• [HAL, CubeMX, TrueSTUDIO를 이용한 ChrisP'...
▷▶ STM32F4 EduBoard V1.2 set 구매 ◁◀
https://smartstore.naver.com/mhivesto...