📄 mainloop.c
字号:
if (anti_work_flag == 0){
cur_x ++;
x_z();
}
else{
cur_x --;
x_f();
}
}
}
if ((cc == 2)||(cc == 7)){
if (f1 > fabs((cur_x*1.0-bx)*(cur_x*1.0-bx)+(cur_y*1.0-1-by)*(cur_y*1.0-1-by)-r)){
if (XBYTE[xy(cur_order)] == 1){
if (anti_work_flag == 0)
cur_off ++;
else
cur_off --;
}
if (anti_work_flag == 0){
cur_y --;
y_f();
}
else{
cur_y ++;
y_z();
}
}
}
if ((cc == 3)||(cc == 6)){
if (f1 > fabs((cur_x*1.0-bx)*(cur_x*1.0-bx)+(cur_y*1.0+1-by)*(cur_y*1.0+1-by)-r)){
if (XBYTE[xy(cur_order)] == 1){
if (anti_work_flag == 0)
cur_off ++;
else
cur_off --;
}
if (anti_work_flag == 0){
cur_y ++;
y_z();
}
else{
cur_y --;
y_f();
}
}
}
if ((cc == 5)||(cc == 8)){
if (f1 > fabs((cur_x*1.0-1-bx)*(cur_x*1.0-1-bx)+(cur_y*1.0-by)*(cur_y*1.0-by)-r)){
if (XBYTE[xy(cur_order)] == 0){
if (anti_work_flag == 0)
cur_off ++;
else
cur_off --;
}
if (anti_work_flag == 0){
cur_x --;
x_f();
}
else{
cur_x ++;
x_z();
}
}
}
}
if (anti_work_flag == 0){
ll = (long)(*((long *)(&(XBYTE[counterlen(cur_order)]))));
if (cur_off >= ll){
XBYTE[xytype(cur_order)] = 0;
cur_order1 = (cur_order+1)%MAX_ORDER;
cur_order = (cur_order+1)%MAX_ORDER;
cur_off = 0;
if (XBYTE[xytype(cur_order)] == 0){
work_status = 2;
e_order = 0;
cur_order1 = 0;
cur_order = 0;
send_req_order(0);
close_gao_pin();
}
}
}
else{
if (cur_off == 0){
anti_work_flag = 0;
}
}
}
else{
}
if (anti_work_flag == 1){
if (loop_off - cur_off >= 200){
cur_jing = old_cur_jing;
anti_work_flag = 0;
}
}
RAMCS = 1;
MCU_D12CS = 0;
}
void send_req_order(char order)
{
cc = 0x85;
RAMCS = 1;
MCU_D12CS = 0;
D12_WriteEndpoint(3, 1, &cc);
}
open_gao_pin()
{
MCU_D12CS = 1;
RAMCS = 0;
if (xiangxlx == 0)
ch = get_x_y_port_byte(cur_x_step_order%10);
else
ch = get_x_y_port_byte(cur_x_step_order%6);
ch = 255 - ch;
ch = ch * 8;
ch = ch & (0xff-7);
out_8255_1_c(1); // gaopin
out_8255_1_a();
ch += 4;
out_8255_1_a();
ch -= 4;
out_8255_1_a();
RAMCS = 1;
MCU_D12CS = 0;
}
close_gao_pin()
{
MCU_D12CS = 1;
RAMCS = 0;
if (xiangxlx == 0)
ch = get_x_y_port_byte(cur_x_step_order%10);
else
ch = get_x_y_port_byte(cur_x_step_order%6);
ch = 255 - ch;
ch = ch * 8;
ch = ch & (0xff-7);
out_8255_1_c(0); // gaopin
out_8255_1_a();
ch += 4;
out_8255_1_a();
ch -= 4;
out_8255_1_a();
RAMCS = 1;
MCU_D12CS = 0;
}
open_mac()
{
MCU_D12CS = 1;
RAMCS = 0;
if (xiangxlx == 0)
ch = get_x_y_port_byte(cur_y_step_order%10);
else
ch = get_x_y_port_byte(cur_y_step_order%6);
ch = 255 - ch;
ch = ch * 8;
ch = ch & (0xff-7);
ch ++;
out_8255_1_c(0); // tingji
out_8255_1_a();
ch += 4;
out_8255_1_a();
ch -= 4;
out_8255_1_a();
RAMCS = 1;
MCU_D12CS = 0;
}
close_mac()
{
MCU_D12CS = 1;
RAMCS = 0;
if (xiangxlx == 0)
ch = get_x_y_port_byte(cur_y_step_order%10);
else
ch = get_x_y_port_byte(cur_y_step_order%6);
ch = 255 - ch;
ch = ch * 8;
ch = ch & (0xff-7);
ch ++;
out_8255_1_c(1); // tingji
out_8255_1_a();
ch += 4;
out_8255_1_a();
ch -= 4;
out_8255_1_a();
RAMCS = 1;
MCU_D12CS = 0;
}
open_mot()
{
MCU_D12CS = 1;
RAMCS = 0;
//X
if (xiangxlx == 0)
ch = get_x_y_port_byte(cur_x_step_order%10);
else
ch = get_x_y_port_byte(cur_x_step_order%6);
ch = 255 - ch;
ch = ch * 8;
ch = ch & (0xff-7);
if (gaopzt == GAOPIN_KAI)
out_8255_1_c(1); // gaopin
else
out_8255_1_c(0); // gaopin
out_8255_1_a();
ch += 4;
out_8255_1_a();
ch -= 4;
out_8255_1_a();
//Y
if (xiangxlx == 0)
ch = get_x_y_port_byte(cur_y_step_order%10);
else
ch = get_x_y_port_byte(cur_y_step_order%6);
ch = 255 - ch;
ch = ch * 8;
ch = ch & (0xff-7);
ch ++;
out_8255_1_c(0); // tingji
out_8255_1_a();
ch += 4;
out_8255_1_a();
ch -= 4;
out_8255_1_a();
//V
ch = get_u_v_port_byte(cur_v_step_order);
ch = 255 - ch;
ch = ch * 8;
ch = ch & (0xff-7);
ch += 3;
out_8255_1_c(1); // dianji
out_8255_1_a();
ch += 4;
out_8255_1_a();
ch -= 4;
out_8255_1_a();
//U
ch = get_u_v_port_byte(cur_u_step_order);
ch = 255 - ch;
ch = ch * 8;
ch = ch & (0xff-7);
ch += 2;
out_8255_1_c(0); // kaiji
out_8255_1_a();
ch += 4;
out_8255_1_a();
ch -= 4;
out_8255_1_a();
RAMCS = 1;
MCU_D12CS = 0;
}
close_mot()
{
MCU_D12CS = 1;
RAMCS = 0;
ch = get_u_v_port_byte(cur_v_step_order);
ch = 255 - ch;
ch = ch * 8;
ch = ch & (0xff-7);
ch += 3;
out_8255_1_c(0); // dianji
out_8255_1_a();
ch += 4;
out_8255_1_a();
ch -= 4;
out_8255_1_a();
RAMCS = 1;
MCU_D12CS = 0;
}
unsigned char get_x_y_port_byte(char cc)
{
if (xiangxlx == 0){
if (cc == 0){
return 0x1+0x2;
}
else if (cc == 1){
return 0x1+0x2+0x4;
}
else if (cc == 2){
return 0x2+0x4;
}
else if (cc == 3){
return 0x2+0x4+0x8;
}
else if (cc == 4){
return 0x4+0x8;
}
else if (cc == 5){
return 0x4+0x8+0x10;
}
else if (cc == 6){
return 0x8+0x10;
}
else if (cc == 7){
return 0x8+0x10+0x1;
}
else if (cc == 8){
return 0x10+0x1;
}
else if (cc == 9){
return 0x10+0x1+0x2;
}
}
else{
if (cc == 0){
return 0x1;
}
else if (cc == 1){
return 0x1+0x2;
}
else if (cc == 2){
return 0x2;
}
else if (cc == 3){
return 0x2+0x4;
}
else if (cc == 4){
return 0x4;
}
else if (cc == 5){
return 0x4+0x1;
}
}
}
unsigned char get_u_v_port_byte(char cc)
{
if (cc == 0){
return 0x1;
}
else if (cc == 1){
return 0x1+0x2;
}
else if (cc == 2){
return 0x2;
}
else if (cc == 3){
return 0x2+0x4;
}
else if (cc == 4){
return 0x4;
}
else if (cc == 5){
return 0x4+0x1;
}
}
out_8255_1_a()
{
DISABLE;
RAMCS = 1;
PCS = 0;
A0 = 0;
A1 = 0;
P2 = ch;
READ = 1;
WRITE = 1;
WRITE = 0;
WRITE = 1;
PCS = 1;
RAMCS = 0;
ENABLE;
}
out_8255_1_c(char cc)
{
DISABLE;
RAMCS = 1;
PCS = 0;
A0 = 0;
A1 = 1;
P2 = cc;
READ = 1;
WRITE = 1;
WRITE = 0;
WRITE = 1;
PCS = 1;
A0 = 0;
A1 = 0;
RAMCS = 0;
ENABLE;
}
x_z()
{
if (diandbz == 1){
if (diand_axis == 3){
u_z();
return;
}
}
cur_x_step_order ++;
if (xiangxlx == 0)
cur_x_step_order %= 10;
else if (xiangxlx == 1)
cur_x_step_order %= 6;
else
return;
ch = get_x_y_port_byte(cur_x_step_order);
ch = 255 - ch;
ch = ch * 8;
ch = ch & 0xf8;
if (gaopzt == GAOPIN_KAI)
out_8255_1_c(1); // gaopin
else
out_8255_1_c(0); // gaopin
out_8255_1_a();
ch += 4;
out_8255_1_a();
ch -= 4;
out_8255_1_a();
}
x_f()
{
if (diandbz == 1){
if (diand_axis == -3){
u_f();
return;
}
}
if (cur_x_step_order == 0){
if (xiangxlx == 0)
cur_x_step_order = 9;
else if (xiangxlx == 1)
cur_x_step_order = 5;
else
return;
}
else
cur_x_step_order --;
if (xiangxlx == 0)
cur_x_step_order %= 10;
else if (xiangxlx == 1)
cur_x_step_order %= 6;
else
return;
ch = get_x_y_port_byte(cur_x_step_order);
ch = 255 - ch;
ch = ch * 8;
ch = ch & 0xf8;
if (gaopzt == GAOPIN_KAI)
out_8255_1_c(1); // gaopin
else
out_8255_1_c(0); // gaopin
out_8255_1_a();
ch += 4;
out_8255_1_a();
ch -= 4;
out_8255_1_a();
}
y_z()
{
if (diandbz == 1){
if (diand_axis == 4){
v_z();
return;
}
}
cur_y_step_order ++;
if (xiangxlx == 0)
cur_y_step_order %= 10;
else if (xiangxlx == 1)
cur_y_step_order %= 6;
else
return;
ch = get_x_y_port_byte(cur_y_step_order);
ch = 255 - ch;
ch = ch * 8;
ch = ch & 0xf8;
ch ++;
out_8255_1_c(0); // tingji
out_8255_1_a();
ch += 4;
out_8255_1_a();
ch -= 4;
out_8255_1_a();
}
y_f()
{
if (diandbz == 1){
if (diand_axis == -4){
v_z();
return;
}
}
if (cur_y_step_order == 0){
if (xiangxlx == 0){
cur_y_step_order = 9;
}
else if (xiangxlx == 1){
cur_y_step_order = 5;
}
else
return;
}
else
cur_y_step_order --;
if (xiangxlx == 0)
cur_y_step_order %= 10;
else if (xiangxlx == 1)
cur_y_step_order %= 6;
else
return;
ch = get_x_y_port_byte(cur_y_step_order);
ch = 255 - ch;
ch = ch * 8;
ch = ch & 0xf8;
ch ++;
out_8255_1_c(0); // tingji
out_8255_1_a();
ch += 4;
out_8255_1_a();
ch -= 4;
out_8255_1_a();
}
u_z()
{
cur_u ++;
}
u_f()
{
cur_u --;
}
v_z()
{
cur_v ++;
}
v_f()
{
cur_v --;
}
init_j8255()
{
DISABLE;
JCS = 0;
PCS = 1;
A0 = 1;
A1 = 1;
P2 = 0x80;
READ = 1;
WRITE = 1;
WRITE = 0;
WRITE = 1;
JCS = 1;
ENABLE;
}
init_p8255()
{
DISABLE;
PCS = 0;
JCS = 1;
A0 = 1;
A1 = 1;
P2 = 0x82;
READ = 1;
WRITE = 1;
WRITE = 0;
WRITE = 1;
PCS = 1;
ENABLE;
}
send_loop_msg()
{
cc = 0x90;
RAMCS = 1;
MCU_D12CS = 0;
D12_WriteEndpoint(3, 1, &cc);
}
delay1()
{
for (i=0;i<1000;i++);
}
void send_cur_pos(char axis,char order)
{
DISABLE;
if (order == 0){
cc = 0x80+axis;
RAMCS = 1;
MCU_D12CS = 0;
ENABLE;
D12_WriteEndpoint(3, 1, &cc);
}
else{
MCU_D12CS = 1;
RAMCS = 0;
if (order < 5){
cc = XBYTE[2400+axis*5+order-1];
cc &= 0x7f;
}
else{
cc = 0;
if (XBYTE[2400+axis*5] > 127)
cc |= 8;
if (XBYTE[2400+axis*5+1] > 127)
cc |= 4;
if (XBYTE[2400+axis*5+2] > 127)
cc |= 2;
if (XBYTE[2400+axis*5+3] > 127)
cc |= 1;
}
RAMCS = 1;
MCU_D12CS = 0;
ENABLE;
D12_WriteEndpoint(3, 1, &cc);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -