/*void planner() { for (int a=0;a<max_ax;a++) { if (speed[a]==null_speed) dir[a]=d_stop; if (speed[a]>null_speed) dir[a]=d_up; if (speed[a]<null_speed) dir[a]=d_down; } for (int a=0;a<max_ax;a++) { testpos(a); } running=false; for (int a=0;a<max_ax;a++) { if (!sak[a]) running=true; } if (running!=lastrunning) { if (running) Serial.println("planner: running"); else { Serial.println("planner: stop"); for (int a=0;a<max_ax;a++) { if (sak[a] and usebrake[a]) setbrake(a,true); } if (issequence) { seq++; if (seq==targetcount) { randomizetargets(); seq=0; } delay(1000); target[0]=targets[seq][0]; goposax(0); } else { if (repeat) { seq=0; if (targets[0][seq]!=maxpos[0]+1) { delay(1000); target[0]=targets[0][seq]; //goposax(0); } } else issequence=false; } } } lastrunning=running; } */ //set start values for certain ax /* void goposax(int ax) { #ifdef info Serial.println("________________________________________________"); Serial.print("calculating vals for ax "); #endif Serial.println(ax); #ifdef info Serial.print("target: "); #endif Serial.println(target[ax]); #ifdef info Serial.print("pos: "); #endif Serial.println(pos[ax]); //return; step[ax]=0; originpos[ax]=pos[ax]; maxdownspeed[ax]=0; maxupspeed[ax]=0; if (pos[ax]>target[ax]) { dist[ax]=pos[ax]-target[ax]; trackspeed[ax]=2048-round((dist[ax]/100)*speedmultiplier[ax]); if (trackspeed[ax]>2018) trackspeed[ax]=2018; maxdownspeed[ax]=trackspeed[ax]; if (maxdownspeed[ax]<absmaxdownspeed[ax]) maxdownspeed[ax]=absmaxdownspeed[ax]; speed[ax]=mindownspeed[ax]; ramp[ax]=r_up; #ifdef info Serial.println("accel"); #endif } else { dist[ax]=target[ax]-pos[ax]; trackspeed[ax]=2048+round((dist[ax]/100)*speedmultiplier[ax]); if (trackspeed[ax]<2078) trackspeed[ax]=2078; maxupspeed[ax]=trackspeed[ax]; if (maxupspeed[ax]>absmaxupspeed[ax]) maxupspeed[ax]=absmaxupspeed[ax]; speed[ax]=minupspeed[ax]; ramp[ax]=r_up; #ifdef info Serial.println("accel"); #endif } #ifdef info Serial.print("distance: "); #endif Serial.println(dist[ax]); #ifdef info Serial.print("maxdownspeed: "); #endif Serial.println(maxdownspeed[ax]); #ifdef info Serial.print("maxupspeed: "); #endif Serial.println(maxupspeed[ax]); #ifdef info Serial.print("initial speed: "); #endif Serial.println(speed[ax]); if (dist[ax]<10) //too small distance, ignore { gopos[ax]=false; speed[ax]=null_speed; ramp[ax]=r_stop; sak[ax]=true; } else { if (usebrake[ax]) setbrake(ax,false); mot_on(ax); sak[ax]=false; running=true; gopos[ax]=true; } } */ //testing ax pos for needed action: /* void testpos(int ax) { int rampunit=50; if (gopos[ax]&&(dir[ax]==d_up)) { if ((pos[ax]>originpos[ax]+step[ax]*rampunit) && (speed[ax]<maxupspeed[ax]) && (ramp[ax]==r_up)) { //(*BESCHLEUNIGEN*) speed[ax]=speed[ax]+m[ax]; step[ax]++; // Serial.print("speed: "); // Serial.println(speed[ax]); if (speed[ax]>=maxupspeed[ax]) { ramp[ax]=r_max; Serial.println("max"); speed[ax]=maxupspeed[ax]; } } if ((pos[ax]>target[ax]-step[ax]*rampunit) && (ramp[ax]==r_max)) { ramp[ax]=r_down; #ifdef info Serial.println("down"); #endif step[ax]--; } if (ramp[ax]==r_down) { if ((pos[ax]>target[ax]-step[ax]*rampunit) && (speed[ax]>minupspeed[ax])) { //(*BREMSEN*) if (step[ax]>0) step[ax]--; speed[ax]=speed[ax]-m[ax]*1; if (speed[ax]<=minupspeed[ax]) { speed[ax]=minupspeed[ax]; ramp[ax]=r_slow; #ifdef info Serial.println("slow"); #endif } } } if ((ramp[ax]==r_slow) &&(pos[ax]>=target[ax])) { // (*STOP*) speed[ax]=2048; gopos[ax]=false; mot_off(ax); pos_to_eeprom(); ramp[ax]=r_stop; #ifdef info Serial.println("stop"); #endif sak[ax]=true; } } if (gopos[ax] && (dir[ax]==d_down)) { if ((ramp[ax]==r_up) && (pos[ax]<(originpos[ax]-step[ax]*rampunit)) && (speed[ax]>maxdownspeed[ax])) {// (*BESCHLEUNIGEN*) speed[ax]=speed[ax]-m[ax]; step[ax]++; // Serial.print("speed: "); // Serial.println(speed[ax]); if (speed[ax]<=maxdownspeed[ax]) { speed[ax]=maxdownspeed[ax]; ramp[ax]=r_max; #ifdef info Serial.println("max"); #endif } } if ((ramp[ax]==r_max) && (pos[ax]<target[ax]+step[ax]*rampunit)) { ramp[ax]=r_down; #ifdef info Serial.println("down"); #endif step[ax]--; } if (ramp[ax]==r_down) { if ((pos[ax]<target[ax]+step[ax]*rampunit) && (speed[ax]<mindownspeed[ax])) {// (*BREMSEN*) if (step[ax]>0) step[ax]--; speed[ax]=speed[ax]+m[ax]*1; if (speed[ax]>=mindownspeed[ax]) { speed[ax]=mindownspeed[ax]; ramp[ax]=r_slow; #ifdef info Serial.println("slow"); #endif } } } if ((ramp[ax]==r_slow) && (pos[ax]<=target[ax])) {// (*STOP*) mot_off(ax); speed[ax]=2048; gopos[ax]=false; ramp[ax]=r_stop; #ifdef info Serial.println("stop"); #endif sak[ax]=true; } } } */