实现51单片机直线插补,!!
下一步要用VB做上位机.不指望读G代码,能画个简单图形就成,加油加油!!!
视频:
flash: http://www.tudou.com/programs/view/lKUnbcWykIE/好多说看不懂,其实就是控制X轴和Y轴走直线
比如当前作为原点,再给出一个坐标点(x2,y2),然后在两点之间画出一条直线,
视频中X走完全程时,Y正好走到一半,这样画出的是
22.5度的直线, 那如果X走完全程,同时Y也走完全程画出的就是45度的直线, 这样说明白吗?
基本上任何角度的都可以画
这就是我理解的直线插补
以后画图形,包括画圆,圆弧都会被拆解成直线段
使用这一过程就会画出来
代码 部分
void out1c2(long xM_stepsX,long xM_stepsY)
// 脉冲数-2^31, 2^31
{
char cha;
double cha2; //直线斜率
char xM_dirX; //前进方向,(1正方向,-1反方向)
char xM_dirY; //前进方向,(1正方向,-1反方向)
xM_dirX = xM_stepsX/labs(xM_stepsX); //取得前进方向
xM_dirY = xM_stepsY/labs(xM_stepsY); //取得前进方向
xM_stepsX = labs(xM_stepsX);
xM_stepsY = labs(xM_stepsY);
[ 此帖被peiruijun在2014-12-03 09:11重新编辑 ]