Dit is het passieve stuurprogramma van de handorthese behorend bij mijn bacheloropdracht. Groet, Menno Sytsma
Dependencies: EMG FastPWM HIDScope mbed-src
Diff: main.cpp
- Revision:
- 5:f97bf30bec14
- Parent:
- 4:4ad3fc99c356
- Child:
- 6:e206abd0b2ca
diff -r 4ad3fc99c356 -r f97bf30bec14 main.cpp --- a/main.cpp Wed Jun 01 12:44:55 2016 +0000 +++ b/main.cpp Wed Jun 01 13:04:36 2016 +0000 @@ -25,8 +25,8 @@ // Verklaren van de in en outputs Ticker Loopticker; // Deze ticker wordt gebruikt om de looptimerflag aan te roepen. volatile bool LoopTimerFlag2 = 0; // Volatile, omdat deze heel vaak verandert van waar naar onwaar. -Ticker Loopticker2; // Deze ticker wordt gebruikt om de looptimerflag aan te roepen. -volatile bool LoopTimerFlag3 = 0; +//Ticker Loopticker2; // Deze ticker wordt gebruikt om de looptimerflag aan te roepen. +//volatile bool LoopTimerFlag3 = 0; AnalogIn Referentie(A0); // De schuifpotmeter naast de geleiding van de draad is de referentie. AnalogIn Boardpotmeter(A2); // POT1 op het board wordt gebruikt als input van de controlloop. AnalogIn Boardpotmeter2(A1); @@ -90,13 +90,6 @@ return Input; } -/*double Inputberekening2(double B, double Val) -{ - double Inp = 10*B; // De potmeter geeft ook waardes tussen 0 en 1, dit wordt met een factor 10 geschaald zodat deze als een positie in cm opgelegd kunnen worden. - Val = Filter2.step(Inp); - return Inp; -}*/ - double Errorberekening(double Input,double Ref) { Error = Input-Ref; // Het Error-signaal wordt ook gebruikt voor de PWMOut, dus mag deze niet hoger worden dan 1, 1 is immers al full speed voor de motor. @@ -155,16 +148,6 @@ motor1speed = 0.01*fabs(Output); } } - /* if(bool Banaan = 1) { - //pc.printf("Banaan \n"); - if(Output>=0) { - motor1direction.write(1); - motor1speed = fabs(Output); - } else if (Output<0) { - motor1direction.write(0); - motor1speed = fabs(Output); - } - }*/ } void Motor_controller2(float Foutje) @@ -187,7 +170,6 @@ Error = 0; int J = 0; time_ = 0; // Voordat het hele programma begint, staat de Error op 0, zodat de motor niet spastisch gaat draaien om dit te compenseren. - //while(1 && J<=320) { while(1 && J<=320) { while(LoopTimerFlag2 !=1); // Als LTF 0 is, blijft hij 0 en stopt de loop. LoopTimerFlag2 = 0; // Als voorgaand statement niet waar is, maken we de LTF weer 0 en gaan we verder met het programma @@ -205,7 +187,6 @@ } //} motor1speed.write(0); - } void tickerfunctie() @@ -213,13 +194,6 @@ LoopTimerFlag = 1; } -/*void Determinemax() -{ - double Val = 10*Boardpotmeter.read(); // De potmeter geeft ook waardes tussen 0 en 1, dit wordt met een factor 10 geschaald zodat deze als een positie in cm opgelegd kunnen worden. - double Max = Filter2.step(Val); - double Set_Error = Referentie.read()-Max; -}*/ - void P_controller(double Max, bool Keuze) { while (Button1pressed.read()==1) {