uart_driver_motor.c
来自「基于Cortex-M3的全自动焊接机」· C语言 代码 · 共 102 行
C
102 行
#include "motor.h"
#include "globaltype.h"
#include "pwm.h"
#include "pwm_init.h"
extern struct placed_relate_parm palced_magor[];
extern unsigned long ulPeriod;
//工作参数设置完毕
void driver_dir(unsigned char dir,unsigned char motor_number);
void uart_driver_motor(unsigned char motor_number ,unsigned char usr_command)
{
switch(motor_number)
{
case 0:
Motor1_Enable(Start);
driver_dir(palced_magor[0].dir,0);
switch(palced_magor[0].dir)
{
case Forward://PWM4正常输出
PWMPulseWidthSet(PWM_BASE, motor1_pwm_forward_out, ulPeriod*3/10);//取反,低电平作为占空比以适应电路
PWMOutputState(PWM_BASE, motor1_pwm_forward_bit_out , true);
break;
case Reverse://PWM5正常输出
PWMPulseWidthSet(PWM_BASE, motor1_pwm_reverse_out, ulPeriod*3/10);//取反,低电平作为占空比以适应电路
PWMOutputState(PWM_BASE, motor1_pwm_reverse_bit_out , true);
break;
}
break;
case 1:
Motor2_Enable(Start);
driver_dir(palced_magor[1].dir,1);
switch(palced_magor[1].dir)
{
case Forward:
PWMPulseWidthSet(PWM_BASE, motor2_pwm_forward_out, ulPeriod*3/10);
PWMOutputState(PWM_BASE, motor2_pwm_forward_bit_out , true);
break;
case Reverse:
PWMPulseWidthSet(PWM_BASE, motor2_pwm_reverse_out, ulPeriod*3/10);
PWMOutputState(PWM_BASE, motor2_pwm_reverse_bit_out , true);
break;
}
break;
case 2:
Motor3_Enable(Start);
driver_dir(palced_magor[2].dir,2);
switch(palced_magor[2].dir)
{
case Forward:
PWMPulseWidthSet(PWM_BASE, motor3_pwm_forward_out, ulPeriod*3/10);//取反,低电平作为占空比以适应电路
PWMOutputState(PWM_BASE, motor3_pwm_forward_bit_out , true);
break;
case Reverse:
PWMPulseWidthSet(PWM_BASE, motor3_pwm_reverse_out, ulPeriod*3/10);//取反,低电平作为占空比以适应电路
PWMOutputState(PWM_BASE, motor3_pwm_reverse_bit_out , true);
break;
}
break;
}
}
void driver_dir(unsigned char dir,unsigned char motor_number)
{
switch(motor_number)
{
case 0:
switch(dir)
{
case Forward:
Motor1Direct(Forward);
break;
case Reverse:
Motor1Direct(Reverse);
break;
}
break;
case 1:
switch(dir)
{
case Forward:
Motor2Direct(Forward);
break;
case Reverse:
Motor2Direct(Reverse);
break;
}
break;
case 2:
switch(dir)
{
case Forward:
Motor3Direct(Forward);
break;
case Reverse:
Motor3Direct(Reverse);
break;
}
break;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?