j
Dependencies: Encoder HIDScope mbed
Fork of Motor_component_testing by
Diff: main.cpp
- Revision:
- 4:71ada7709c46
- Parent:
- 3:c6b8499a9021
- Child:
- 5:a0f300785c3d
--- a/main.cpp Mon Oct 27 12:13:24 2014 +0000 +++ b/main.cpp Mon Oct 27 12:45:01 2014 +0000 @@ -12,6 +12,7 @@ #define PWM2_min_50 0.519 /*aanpassen! Klopt nog niet met koppelstuk*/ /*Definieren om de hoeveel seconden er gegevens naar de HID-scope gestuurd worden.*/ #define TSAMP 0.005 +#define I_LIMIT 1. Encoder motor1(PTD3,PTD1); Encoder motor2(PTD5, PTD0); @@ -21,13 +22,19 @@ DigitalOut motordir2(M2_DIR); DigitalOut LED(LED_GREEN); +void clamp(float * in, float min, float max); volatile bool looptimerflag; int PWM1_percentage = 1; int PWM2_percentage = 1; +int aantal_rotaties = 100; +int aantalcr = 960; +int beginpos_motor1; +int beginpos_motor1_new; +int beginpos_motor2; float PWM1 = ((1-PWM1_min_30)/100)*PWM1_percentage + PWM1_min_30; float PWM2 = ((1-PWM2_min_50)/100)*PWM2_percentage + PWM1_min_30; -HIDScope scope(3); +HIDScope scope(4); //Ticker tick; /*void PWMc() @@ -48,25 +55,25 @@ int main() { //tick.attach(&PWMc, 5); - pwm_motor1.period_us(100); - pwm_motor2.period_us(100); - pwm_motor1.write(PWM1); - pwm_motor2.write(PWM2); + beginpos_motor1 = motor1.getPosition(); + beginpos_motor1_new = beginpos_motor1; + beginpos_motor2 = motor2.getPosition(); + + Ticker looptimer; // looptimer = variabele van het type ticker(niet int of float), Daarmee is looptimer een classe. Omdat een classe is heeft het methods oftewel functies, zoals attach. Setlooptimerflag is een functie + looptimer.attach(setlooptimerflag,TSAMP); // attach betekend het koppelen van een functie aan een classe. LED = 0; motordir1 = 0; motordir2 = 0; - Ticker looptimer; // looptimer = variabele van het type ticker(niet int of float), Daarmee is looptimer een classe. Omdat een classe is heeft het methods oftewel functies, zoals attach. Setlooptimerflag is een functie - looptimer.attach(setlooptimerflag,TSAMP); // attach betekend het koppelen van een functie aan een classe. - while(true) { - - //wait(3); - //pwm_motor1.write(0.4); + while(beginpos_motor1 + aantal_rotaties*aantalcr >= beginpos_motor1_new) { + pwm_motor1.period_us(100); + pwm_motor2.period_us(100); + pwm_motor1.write(PWM1); + pwm_motor2.write(PWM2); + beginpos_motor1_new = motor1.getPosition(); + + //while(true) { LED = 1; - //wait(1); - //PWM = PWM + 0.05; - - //pwm_motor1.pulsewidth_us(50); while(!looptimerflag) //Hierdoor zeg je eigenlijk tegen je systeem; voer dit script uit na elke TSAMP s. { /*do nothing*/ //Zolang dit waar is, doe je niets. @@ -79,4 +86,21 @@ scope.set(3, motor2.getSpeed()); scope.send(); } -} + + pwm_motor1.period_us(100); + pwm_motor2.period_us(100); + pwm_motor1.write(0); + pwm_motor2.write(0); + + LED = 0; + while(!looptimerflag) //Hierdoor zeg je eigenlijk tegen je systeem; voer dit script uit na elke TSAMP s. + { + /*do nothing*/ //Zolang dit waar is, doe je niets. + } + looptimerflag = false; //clear flag + scope.set(0, motor1.getPosition()); + scope.set(1, motor1.getSpeed()); + scope.set(2, motor2.getPosition()); + scope.set(3, motor2.getSpeed()); + scope.send(); +} \ No newline at end of file