test4
Dependencies: mbed BufferedSerial LS7366LIB2 FastPWM
motor.h
- Committer:
- lsh3146
- Date:
- 2020-12-08
- Revision:
- 4:bf278ddb8504
- Parent:
- 0:7cff999a7f5c
File content as of revision 4:bf278ddb8504:
#ifndef _MOTOR_H_ #define _MOTOR_H_ #include "FastPWM.h" FastPWM pwm1(MOTOR_PWM1, -1); FastPWM pwm2(MOTOR_PWM2, -1); FastPWM pwm3(MOTOR_PWM3, -1); FastPWM pwm4(MOTOR_PWM4, -1); FastPWM pwm5(MOTOR_PWM5, -1); FastPWM pwm6(MOTOR_PWM6, -1); FastPWM pwm7(MOTOR_PWM7, -1); void motor_init() { pwm1.period_us(2500); pwm2.period_us(2500); pwm3.period_us(2500); pwm4.period_us(2500); pwm5.period_us(2500); pwm6.period_us(2500); pwm7.period_us(2500); pwm7.write(0.2); } int ex_encoder[6]={0,0,0,0,0,0}; int now_encoder[6]={0,0,0,0,0,0}; int stop_cnt[6]={0,0,0,0,0,0}; double now_motor_duty[6]={0,0,0,0,0,0}; double after_motor_duty[6]={0,0,0,0,0,0}; double motor_currnt_cut=1.0; double sum_duty_123axis=0; double sum_duty_456axis=0; double total_duty=0;; int duty_limit=1000; int duty_limit_cnt=0; bool duty_limit_on=false; int error_check_boost_duty[6]={0,}; double motor_offset[6]={0,0,0,0,0,0}; double last_percent[6]={0,}; void motor_power(int motor_num,double percent) { percent=-percent; double output=offset[motor_num]; if(percent<-500*motor_gain[motor_num]) percent=-500*motor_gain[motor_num]; if(percent>500*motor_gain[motor_num]) percent=500*motor_gain[motor_num]; if(motor_num==0) { last_percent[motor_num]=percent; output = 1-(offset[motor_num] + percent)/2500; pwm1.write(output); } else if(motor_num==1) { last_percent[motor_num]=percent; output = 1-(offset[motor_num] + percent)/2500; pwm2.write(output); } else if(motor_num==2) { last_percent[motor_num]=percent; output = 1-(offset[motor_num] + percent)/2500; pwm3.write(output); } else if(motor_num==3) { last_percent[motor_num]=percent; output = 1-(offset[motor_num] + percent)/2500; pwm4.write(output); } else if(motor_num==4) { last_percent[motor_num]=percent; output = 1-(offset[motor_num] + percent)/2500; pwm5.write(output); } else if(motor_num==5) { last_percent[motor_num]=percent; output = 1-(offset[motor_num] + percent)/2500; pwm6.write(output); } } #endif