[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