bit MOTORX_RUN; //X轴启动标志
bit MOTORY_RUN; //Y轴启动标志
bit MotorX_LowFlag; //电机X轴低电平计数标志
bit MotorY_LowFlag; //电机Y轴低电平计数标志
uint MotorX_LowCounter; //电机X轴低电平计数器
uint MotorX_HighCounter; //电机X轴高电平计数器
uint MotorY_LowCounter; //电机X轴低电平计数器
uint MotorY_HighCounter; //电机X轴高电平计数器
/**************定时中断*************************/
void timer0() interrupt 1
{
val++;
if(val>100)
{
val=0;
OUT1=~OUT1; //将测试口取反
}
//X轴电机高低电平切换
if(MOTORX_RUN==1) //X轴电机开启标志
{
P_WM1=0; //开X轴输出
if(MotorX_LowFlag==1) //低电平计数标志等于1
{
MotorX_LowCounter++;
if(MotorX_LowCounter>=ADvalue_x)//
{
MotorX_LowFlag=0; //低电平计数标志等于0高电平开始计数
MotorX_HighCounter=102-ADvalue_x;//赋高电平占空比值
}
}
else
{
P_WM1=1; //关X轴输出
MotorX_HighCounter++;
if(MotorX_HighCounter>=ADvalue_x)//
{
MotorX_LowFlag=1; //低电平计数标志等于1低电平开始计数
MotorX_LowCounter=ADvalue_x; //低电平计数器
}
}
}
//Y轴电机高低电平切换
if(MOTORY_RUN==1) //X轴电机开启标志
{
P_WM2=0; //开Y轴输出
if(MotorY_LowFlag==1) //低电平计数标志等于1
{
MotorY_LowCounter++;
if(MotorY_LowCounter>=ADvalue_y)//
{
MotorY_LowFlag=0; //低电平计数标志等于0高电平开始计数
MotorY_HighCounter=102-ADvalue_y;//赋高电平占空比值
}
}
else
{
P_WM2=1; //关Y轴输出
MotorY_HighCounter++;
if(MotorY_HighCounter>=ADvalue_y)//
{
MotorY_LowFlag=1; //低电平计数标志等于1低电平开始计数
MotorY_LowCounter=ADvalue_y; //
}
}
}
}
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/czhaii/article/details/139612648
bit MOTORY_RUN; //Y轴启动标志
bit MotorX_LowFlag; //电机X轴低电平计数标志
bit MotorY_LowFlag; //电机Y轴低电平计数标志
uint MotorX_LowCounter; //电机X轴低电平计数器
uint MotorX_HighCounter; //电机X轴高电平计数器
uint MotorY_LowCounter; //电机X轴低电平计数器
uint MotorY_HighCounter; //电机X轴高电平计数器
/**************定时中断*************************/
void timer0() interrupt 1
{
val++;
if(val>100)
{
val=0;
OUT1=~OUT1; //将测试口取反
}
//X轴电机高低电平切换
if(MOTORX_RUN==1) //X轴电机开启标志
{
P_WM1=0; //开X轴输出
if(MotorX_LowFlag==1) //低电平计数标志等于1
{
MotorX_LowCounter++;
if(MotorX_LowCounter>=ADvalue_x)//
{
MotorX_LowFlag=0; //低电平计数标志等于0高电平开始计数
MotorX_HighCounter=102-ADvalue_x;//赋高电平占空比值
}
}
else
{
P_WM1=1; //关X轴输出
MotorX_HighCounter++;
if(MotorX_HighCounter>=ADvalue_x)//
{
MotorX_LowFlag=1; //低电平计数标志等于1低电平开始计数
MotorX_LowCounter=ADvalue_x; //低电平计数器
}
}
}
//Y轴电机高低电平切换
if(MOTORY_RUN==1) //X轴电机开启标志
{
P_WM2=0; //开Y轴输出
if(MotorY_LowFlag==1) //低电平计数标志等于1
{
MotorY_LowCounter++;
if(MotorY_LowCounter>=ADvalue_y)//
{
MotorY_LowFlag=0; //低电平计数标志等于0高电平开始计数
MotorY_HighCounter=102-ADvalue_y;//赋高电平占空比值
}
}
else
{
P_WM2=1; //关Y轴输出
MotorY_HighCounter++;
if(MotorY_HighCounter>=ADvalue_y)//
{
MotorY_LowFlag=1; //低电平计数标志等于1低电平开始计数
MotorY_LowCounter=ADvalue_y; //
}
}
}
}
————————————————
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/czhaii/article/details/139612648