나의 프로젝트의 기본적인 로직이 다 완성된 것 같다.
미니 프로젝트라 조금 조잡해보일 수 있지만, 하고 싶어서 하는 것이니 양해바란다.
먼저 저번 포스팅에서 RTOS에서 진동 감지 센서와 LED, 7세그먼트를 적용하였다.
이번엔 버튼을 이용하여 7세그먼트를 초기화하겠다.
먼저 버튼은 Input으로 설정해주자
이렇게 설정해주고 회로는 아시리라 생각하지만
https://m.blog.naver.com/sisosw/221668811609
위 블로그에서 자세히 설명해주니 참고해도 된다.
코드는 다음과 같이 수정해주면 된다.
void StartDefaultTask(void const * argument)
{
/* USER CODE BEGIN 5 */
/* Infinite loop */
uint8_t checkButton = 0;
for(;;)
{
display_number(score, 80);
if(HAL_GPIO_ReadPin(GPIO_PA2_Button_GPIO_Port, GPIO_PA2_Button_Pin) == 0){
++checkButton;
if(checkButton > 10){
//HAL_GPIO_WritePin(GPIO_PC13_LED_GPIO_Port, GPIO_PC13_LED_Pin, 0);
score = 0;
checkButton = 0;
}
}
osDelay(10);
}
/* USER CODE END 5 */
}
채터링때문에 10번 이상 일때만 동작하게끔 해두었다.
tick을 사용하려했지만 tick은 진동센서에서 사용했으므로 여기서는 카운터로 해보고 싶었다.
여기서 카운터가 가능한 이유는 버튼은 어차피 7세그먼트를 초기화하기 위한 버튼으로 꾹 눌르거나 짧게 눌러도 채터링이 10번 이상 발생하기 때문에 카운터로 사용해도 무방하다고 생각했다.
구현 영상이다.
'STM32' 카테고리의 다른 글
STM32로 진동 감지 센서 + 7세그먼트 제어 - 2 (0) | 2024.12.24 |
---|---|
STM32로 진동 감지 센서 + 7세그먼트 제어 - 1 (1) | 2024.12.23 |
STM32로 DFR0027를 다루어 보기 (0) | 2024.12.22 |
STM32 익히기 2) (0) | 2024.12.05 |
STM32 익히기 1) (0) | 2024.12.02 |