[STM32] Stepmotor FOR/BACKWARD/STOP+PC command
2021. 11. 9. 23:54ㆍ코딩/STM32
MAIN.c
void stepmotor_main()
{
switch (runstate)
{
case IDLE :
stepmotor_half_drive(IDLE);
if (getButtonState(BUTTON1_GPIO_Port, BUTTON1_Pin, &prevButton1State))
{
direction_state = FORWARD;
}
else if (getButtonState(BUTTON2_GPIO_Port, BUTTON2_Pin, &prevButton2State))
{
direction_state = BACKWARD;
}
else if (getButtonState(BUTTON3_GPIO_Port, BUTTON3_Pin, &prevButton3State))
{
runstate = START;
}
break;
case START :
if(my_delay_us(1126))
stepmotor_half_drive(direction_state);
if (getButtonState(BUTTON1_GPIO_Port, BUTTON1_Pin, &prevButton1State))
{
direction_state = FORWARD;
}
else if (getButtonState(BUTTON2_GPIO_Port, BUTTON2_Pin, &prevButton2State))
{
direction_state = BACKWARD;
}
else if (getButtonState(BUTTON3_GPIO_Port, BUTTON3_Pin, &prevButton3State))
{
runstate = IDLE;
}
break;
}
pc_stepmotor_command_processing();
bluetooth_stepmotor_command_processing();
}
MAIN - DELAY
uint8_t my_delay_us (unsigned long us)
{
static uint8_t first = 1;
if(first)
{
__HAL_TIM_SET_COUNTER(&htim1, 0);
first = 0;
}
if(__HAL_TIM_GET_COUNTER(&htim1) > us)
{
__HAL_TIM_SET_COUNTER(&htim1, 0);
first = 1;
return 1;
}
else
return 0;
}
pc 명령어로 모터제어
버튼으로 모터제어
'코딩 > STM32' 카테고리의 다른 글
[STM32] Elevator project 동작 동영상 (0) | 2021.11.09 |
---|---|
[STM32]내부RTC Get/Set 동작 (0) | 2021.11.09 |
[STM32] photo coupler LED 점등 (0) | 2021.11.09 |
[STM32] 8cm 초음파 센서 줄자 / 온도계 (0) | 2021.11.09 |
[STM32] LED / 3 BUTTON SYSTICK (0) | 2021.11.09 |