svoe

Dependencies:   mbed mbed-STM32F103C8T6 MPU6050_1

Committer:
dima285
Date:
Sat Sep 16 13:24:25 2017 +0000
Revision:
9:8f98b1c277a4
Parent:
8:891e4f54e9e2
Child:
10:5bdd3dfd5f59
shoto rabotaet

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Stas285 0:e9488589a8ee 1 Ticker rt_ticker;
Stas285 4:904b737ef08a 2 float rt_delta;
Stas285 4:904b737ef08a 3 bool realtime_flag;
Stas285 0:e9488589a8ee 4
dima285 9:8f98b1c277a4 5
Stas285 4:904b737ef08a 6 void realtime(){ //35uS - (3.5mS @ 115200) - (500uS @ 921600) (w/o sin,cos)
dima285 9:8f98b1c277a4 7 //test = 1;
Stas285 6:6e89cdc3db92 8
dima285 9:8f98b1c277a4 9 //geometric navigation MOVE TO SKOROST!!!!!
dima285 9:8f98b1c277a4 10 /* rt_delta = (motor_speed[1]+motor_speed[0])/2.0*0.05;
Stas285 6:6e89cdc3db92 11 current_angle += (motor_speed[0]-motor_speed[1])*0.05/16.0*57.3;//deg
Stas285 4:904b737ef08a 12 current_path += rt_delta;
Stas285 4:904b737ef08a 13 current_x += rt_delta*sin(current_angle/57.3);
dima285 9:8f98b1c277a4 14 current_y += rt_delta*cos(current_angle/57.3);*/
Stas285 6:6e89cdc3db92 15 //pc.printf("%3.1f - %3.1f ; %3.1f - %3.1f ; %d\n",target_path,current_path,target_angle,current_angle,motor_busy); //be careful in interrupt
Stas285 0:e9488589a8ee 16
dima285 9:8f98b1c277a4 17 /*if(motor_busy == 1) {
Stas285 6:6e89cdc3db92 18 if(stop_flag == 1) {skorost(0,0);skorost(1,0);if(abs(motor_speed[0])<1) motor_busy = 0;} //Stop with accel
Stas285 1:e2a6e523bf1f 19 else { //motion
Stas285 1:e2a6e523bf1f 20 if(infinite_flag == 1){skorost(1,speed*(1-half_width/radius));skorost(0,speed*(1+half_width/radius));}
Stas285 1:e2a6e523bf1f 21 else{
Stas285 1:e2a6e523bf1f 22 if(angle_task == 1) {//radial motion
Stas285 1:e2a6e523bf1f 23 if((angle_dir == 1) && (target_angle <= current_angle)) motor_busy = 0;
Stas285 1:e2a6e523bf1f 24 if((angle_dir == 0) && (target_angle >= current_angle)) motor_busy = 0;
Stas285 1:e2a6e523bf1f 25 if(motor_busy == 1) {
Stas285 1:e2a6e523bf1f 26 if(radius > 1) {
Stas285 1:e2a6e523bf1f 27 if((angle_dir == 1) && (speed>0) || (angle_dir == 0) && (speed<0)){
Stas285 1:e2a6e523bf1f 28 skorost(1,speed*(1-half_width/radius));skorost(0,speed*(1+half_width/radius));}
Stas285 1:e2a6e523bf1f 29 else {skorost(1,speed*(1+half_width/radius));skorost(0,speed*(1-half_width/radius));}}
Stas285 4:904b737ef08a 30 else {if(angle_dir == 1){skorost(1,-speed); skorost(0,speed);} else {skorost(1,speed); skorost(0,-speed);} //turn on the spot
Stas285 1:e2a6e523bf1f 31 }
Stas285 0:e9488589a8ee 32 }
Stas285 1:e2a6e523bf1f 33 }
Stas285 1:e2a6e523bf1f 34 if(angle_task == 0) {//linear motion
Stas285 1:e2a6e523bf1f 35 if((path_dir == 1) && (target_path <= current_path)) motor_busy = 0;
Stas285 1:e2a6e523bf1f 36 if((path_dir == 0) && (target_path >= current_path)) motor_busy = 0;
Stas285 1:e2a6e523bf1f 37 if(motor_busy == 1) {if(path_dir == 1) {skorost(1,speed);skorost(0,speed);} else{skorost(1,-speed);skorost(0,-speed);} }
Stas285 0:e9488589a8ee 38 }
Stas285 0:e9488589a8ee 39 }
Stas285 0:e9488589a8ee 40 }
dima285 9:8f98b1c277a4 41 } */
dima285 9:8f98b1c277a4 42 //echo_step(1);
dima285 9:8f98b1c277a4 43
dima285 9:8f98b1c277a4 44 skorost_1(0,0);
dima285 9:8f98b1c277a4 45
Stas285 4:904b737ef08a 46 realtime_flag = 1;
dima285 9:8f98b1c277a4 47
dima285 9:8f98b1c277a4 48
Stas285 0:e9488589a8ee 49
dima285 9:8f98b1c277a4 50 // test = 0;
Stas285 1:e2a6e523bf1f 51 //pc.printf("%d \n", proc_counter); proc_counter = 0;
Stas285 0:e9488589a8ee 52 }
Stas285 0:e9488589a8ee 53
Stas285 0:e9488589a8ee 54 void realtime_init(){
dima285 9:8f98b1c277a4 55 rt_ticker.attach(&realtime, 0.01);
Stas285 0:e9488589a8ee 56 }