svoe
Dependencies: mbed mbed-STM32F103C8T6 MPU6050_1
realtime.h
- Committer:
- dima285
- Date:
- 2017-09-16
- Revision:
- 9:8f98b1c277a4
- Parent:
- 8:891e4f54e9e2
- Child:
- 10:5bdd3dfd5f59
File content as of revision 9:8f98b1c277a4:
Ticker rt_ticker; float rt_delta; bool realtime_flag; void realtime(){ //35uS - (3.5mS @ 115200) - (500uS @ 921600) (w/o sin,cos) //test = 1; //geometric navigation MOVE TO SKOROST!!!!! /* rt_delta = (motor_speed[1]+motor_speed[0])/2.0*0.05; current_angle += (motor_speed[0]-motor_speed[1])*0.05/16.0*57.3;//deg current_path += rt_delta; current_x += rt_delta*sin(current_angle/57.3); current_y += rt_delta*cos(current_angle/57.3);*/ //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 /*if(motor_busy == 1) { if(stop_flag == 1) {skorost(0,0);skorost(1,0);if(abs(motor_speed[0])<1) motor_busy = 0;} //Stop with accel else { //motion if(infinite_flag == 1){skorost(1,speed*(1-half_width/radius));skorost(0,speed*(1+half_width/radius));} else{ if(angle_task == 1) {//radial motion if((angle_dir == 1) && (target_angle <= current_angle)) motor_busy = 0; if((angle_dir == 0) && (target_angle >= current_angle)) motor_busy = 0; if(motor_busy == 1) { if(radius > 1) { if((angle_dir == 1) && (speed>0) || (angle_dir == 0) && (speed<0)){ skorost(1,speed*(1-half_width/radius));skorost(0,speed*(1+half_width/radius));} else {skorost(1,speed*(1+half_width/radius));skorost(0,speed*(1-half_width/radius));}} else {if(angle_dir == 1){skorost(1,-speed); skorost(0,speed);} else {skorost(1,speed); skorost(0,-speed);} //turn on the spot } } } if(angle_task == 0) {//linear motion if((path_dir == 1) && (target_path <= current_path)) motor_busy = 0; if((path_dir == 0) && (target_path >= current_path)) motor_busy = 0; if(motor_busy == 1) {if(path_dir == 1) {skorost(1,speed);skorost(0,speed);} else{skorost(1,-speed);skorost(0,-speed);} } } } } } */ //echo_step(1); skorost_1(0,0); realtime_flag = 1; // test = 0; //pc.printf("%d \n", proc_counter); proc_counter = 0; } void realtime_init(){ rt_ticker.attach(&realtime, 0.01); }