📄 test6-18.c
字号:
#include "userlib.h"
#include <stdio.h>
void initial(void);
void home(long);
void error(short);
short rtn;
void initial()
{
rtn=GT_Open(); error(rtn);
rtn=GT_Reset(); error(rtn);
rtn=GT_LmtSns(0); error(rtn);
rtn=GT_EncSns(0); error(rtn);
rtn=GT_Axis(1); error(rtn);
rtn=GT_ClrSts(); error(rtn);
rtn=GT_SetKp(20); error(rtn);
rtn=GT_SetKi(2); error(rtn);
rtn=GT_SetKd(60); error(rtn);
rtn=GT_SetKvff(0); error(rtn);
rtn=GT_SetKaff(0); error(rtn);
rtn=GT_SetILmt(100); error(rtn);
rtn=GT_Update(); error(rtn);
rtn=GT_AxisOn(); error(rtn);
}
void home(long pos)
{
unsigned short status;
long actl_pos;
rtn=GT_ClrSts(); error(rtn);
rtn=GT_CaptHome(); error(rtn);
rtn=GT_PrflT(); error(rtn);
rtn=GT_SetVel(4); error(rtn);
rtn=GT_SetAcc(1); error(rtn);
rtn=GT_SetPos(pos); error(rtn);
rtn=GT_Update(); error(rtn);
rtn=GT_GetSts(&status); error(rtn);
while(!(status&0x8))
{
if(status&0x1) return;
rtn=GT_GetSts(&status); error(rtn);
}
rtn=GT_GetCapt(&pos); error(rtn);
rtn=GT_SetPos(pos); error(rtn);
rtn=GT_Update(); error(rtn);
rtn=GT_ClrSts(); error(rtn);
rtn=GT_GetSts(&status); error(rtn);
while(!(status&0x1))
{
rtn=GT_GetSts(&status); error(rtn);
}
rtn=GT_ClrSts(); error(rtn);
rtn=GT_CaptIndex(); error(rtn);
pos=pos+8000;
rtn=GT_SetPos(pos); error(rtn);
rtn=GT_Update(); error(rtn);
rtn=GT_GetSts(&status); error(rtn);
while(!(status&0x8))
{
rtn=GT_GetSts(&status); error(rtn);
}
rtn=GT_ClrSts(); error(rtn);
rtn=GT_GetCapt(&pos); error(rtn);
rtn=GT_SetPos(pos); error(rtn);
rtn=GT_Update(); error(rtn);
rtn=GT_GetSts(&status); error(rtn);
while(!(status&0x1))
{
rtn=GT_GetSts(&status); error(rtn);
}
rtn=GT_ClrSts(); error(rtn);
rtn=GT_ZeroPos(); error(rtn);
}
void error(short rtn)
{
switch (rtn)
{
case -1:
printf("error: communciation error\n");
break;
case 0:
/* No error */
break;
case 1:
printf("error: command error\n");
break;
case 2:
printf("error: radius is zero or too large\n");
break;
case 3:
printf("error: the length of line is zero or too large\n");
break;
case 4:
printf("error: acceleration or velocity is zero or too large\n");
break;
case 5:
printf("error: parameter conflict\n");
break;
case 6:
printf("error: nonexistence solution for the equation\n");
break;
case 7:
printf("error: process parameter error\n");
break;
default:
break;
}
}
void main()
{
initial();
home(-20000000);
rtn=GT_Close(); error(rtn);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -