Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: Encoder HIDScope MODSERIAL mbed-dsp mbed
Fork of BMT-M9_motorcontrol by
Revision 11:4f65e70290ac, committed 2014-10-15
- Comitter:
- Hooglugt
- Date:
- Wed Oct 15 13:57:45 2014 +0000
- Parent:
- 10:6f8af13cc3f4
- Child:
- 12:02abb60385c8
- Child:
- 13:7ec4762ec4ce
- Commit message:
- step function;
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Wed Oct 01 09:58:52 2014 +0000
+++ b/main.cpp Wed Oct 15 13:57:45 2014 +0000
@@ -15,7 +15,7 @@
AnalogIn potmeter(PTC2);
volatile bool looptimerflag;
float potsamples[POT_AVG];
-HIDScope scope(6);
+HIDScope scope(2);
void setlooptimerflag(void)
@@ -29,6 +29,8 @@
{
//start Encoder
Encoder motor1(PTD0,PTC9);
+ // @param int_a Pin to be used as InterruptIn! Be careful, as not all pins on all platforms may be used as InterruptIn.
+ // @param int_b second encoder pin, used as DigitalIn. Can be any DigitalIn pin, not necessarily on InterruptIn location
/*PwmOut to motor driver*/
PwmOut pwm_motor(PTA5);
//10kHz PWM frequency
@@ -38,19 +40,19 @@
looptimer.attach(setlooptimerflag,TSAMP);
while(1) {
float setpoint;
- float new_pwm;
- /*wait until timer has elapsed*/
+ float new_pwm;
while(!looptimerflag);
looptimerflag = false; //clear flag
- /*potmeter value: 0-1*/
- setpoint = (potmeter.read()-.5)*500;
- /*new_pwm = (setpoint - motor1.getPosition())*.001; -> P action*/
- new_pwm = pid(setpoint, motor1.getPosition());
+ //potmeter value: 0-1
+ //setpoint = (potmeter.read()-.5)*500;
+ //new_pwm = (setpoint - motor1.getPosition())*.001; -> P action
+ new_pwm = 1; // DIT IS PUUR VOOR DE STEPFUNCTION
+ //new_pwm = pid(setpoint, motor1.getPosition());
clamp(&new_pwm, -1,1);
- scope.set(0, setpoint);
- scope.set(4, new_pwm);
- scope.set(5, motor1.getPosition());
- // ch 1, 2 and 3 set in pid controller */
+ //scope.set(0, setpoint);
+ scope.set(1, new_pwm);
+ scope.set(2, motor1.getPosition());
+ // ch 1, 2 and 3 set in pid controller
scope.send();
if(new_pwm > 0)
motordir = 0;
@@ -69,7 +71,7 @@
*in > min ? *in < max? : *in = max: *in = min;
}
-
+/*
float pid(float setpoint, float measurement)
{
float error;
@@ -86,6 +88,7 @@
scope.set(1,out_p);
scope.set(2,out_i);
scope.set(3,out_d);
- return out_p + out_i + out_d;
+ return out_p + out_i + out_d;
}
+*/
