STM32
포토 커플러, 스텝 모터 동작
오버헤드프레스
2023. 7. 18. 10:02
EXTI는 CallBack 을 써야함
Driver/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_gpio.c
502~514 잘라내기 후
main문 타이머 밑에 슈웃
잘 되는지 확인용
interrupt 설정
==> 정상 작동
포토커플러에 인식될 때 스텝모터 정지시키기
stepmotor.c에 선언
void stepmotor_main()
{
switch(stepmotor_state)
{
case IDLE:
stepmotor_drive(stepmotor_state);
set_rpm(0);
if (get_button(BUTTON0_GPIO_Port, BUTTON0_Pin, BUTTON0) == BUTTON_PRESS)
{
stepmotor_state = FORWARD;
}
break;
case FORWARD:
stepmotor_drive(stepmotor_state);
set_rpm(10); //rpm 속도 조절
if (get_button(BUTTON0_GPIO_Port, BUTTON0_Pin, BUTTON0) == BUTTON_PRESS)
{
stepmotor_state = BACKWARD;
}
if (get_button(BUTTON1_GPIO_Port, BUTTON1_Pin, BUTTON1) == BUTTON_PRESS)
{
stepmotor_state = IDLE;
}
if(ext_int_no != -1)
{
ext_int_no = -1;
stepmotor_state = IDLE;
}
break;
case BACKWARD:
stepmotor_drive(stepmotor_state);
set_rpm(10);
if (get_button(BUTTON0_GPIO_Port, BUTTON0_Pin, BUTTON0) == BUTTON_PRESS)
{
stepmotor_state = FORWARD;
}
if (get_button(BUTTON1_GPIO_Port, BUTTON1_Pin, BUTTON1) == BUTTON_PRESS)
{
stepmotor_state = IDLE;
}
if(ext_int_no != -1)
{
ext_int_no = -1;
stepmotor_state = IDLE;
}
break;
}
}
정상작동 확인
DOTMATRIX
PE2~PE9 (행연결)
PD0~PD7 (열연결)
ioc 모두 GPIO_OUTPUT으로 설정
PE2~PE9 까지 COL1 ~COL8
PD0~PD7 까지 ROW1~ROW8 이름 변경