a

Dependencies:   mbed mbedWSEsbc

Committer:
Vincent9
Date:
Wed Nov 14 05:55:46 2018 +0000
Revision:
0:980f29af9da6
Child:
1:da8fb81386ab
A

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Vincent9 0:980f29af9da6 1 #include "mbed.h"
Vincent9 0:980f29af9da6 2 #include "mbedWSEsbc.h"
Vincent9 0:980f29af9da6 3 #define PI (3.14159)
Vincent9 0:980f29af9da6 4
Vincent9 0:980f29af9da6 5 float trt; // Total run time
Vincent9 0:980f29af9da6 6 float cet; // Current elapsed time
Vincent9 0:980f29af9da6 7 float updateperiod = 0.0083; // Control update period (seconds) (120 Hz equivalent)
Vincent9 0:980f29af9da6 8 float dsp = 0.01; // Data streaming period (seconds) (100 Hz equivalent)
Vincent9 0:980f29af9da6 9 //float ang,angp,speed; // variables for approximating speed from encoder measurements
Vincent9 0:980f29af9da6 10 //float DCAmp; // duty cycle applied to motor
Vincent9 0:980f29af9da6 11 float dc; // duty cycle
Vincent9 0:980f29af9da6 12 //long enc1; // encoder variable
Vincent9 0:980f29af9da6 13 float parameter;
Vincent9 0:980f29af9da6 14 float speed;
Vincent9 0:980f29af9da6 15 float DCAmp;
Vincent9 0:980f29af9da6 16 float measurement;
Vincent9 0:980f29af9da6 17 float rad;
Vincent9 0:980f29af9da6 18 float rad_old;
Vincent9 0:980f29af9da6 19
Vincent9 0:980f29af9da6 20 Ticker Controller;
Vincent9 0:980f29af9da6 21
Vincent9 0:980f29af9da6 22 void ctrCode ();
Vincent9 0:980f29af9da6 23 void StepCode();
Vincent9 0:980f29af9da6 24
Vincent9 0:980f29af9da6 25 int main() {
Vincent9 0:980f29af9da6 26 mbedWSEsbcInit(115200);
Vincent9 0:980f29af9da6 27 mot_en1.period(.020);
Vincent9 0:980f29af9da6 28
Vincent9 0:980f29af9da6 29 while(1) {
Vincent9 0:980f29af9da6 30 pc.scanf("%f,%f",&trt,&DCAmp);
Vincent9 0:980f29af9da6 31 cet = 0;
Vincent9 0:980f29af9da6 32 t.reset();
Vincent9 0:980f29af9da6 33 Controller.attach(&StepCode,updateperiod);
Vincent9 0:980f29af9da6 34 t.start();
Vincent9 0:980f29af9da6 35 while (cet <= trt){
Vincent9 0:980f29af9da6 36 pc.printf("%f,%f,%f\n",cet,speed,dc);
Vincent9 0:980f29af9da6 37 wait(dsp);
Vincent9 0:980f29af9da6 38
Vincent9 0:980f29af9da6 39 }
Vincent9 0:980f29af9da6 40 Controller.detach();
Vincent9 0:980f29af9da6 41 mot_control(1,0.0);
Vincent9 0:980f29af9da6 42 }
Vincent9 0:980f29af9da6 43 }
Vincent9 0:980f29af9da6 44 void ctrCode() {
Vincent9 0:980f29af9da6 45 cet=t.read();
Vincent9 0:980f29af9da6 46 measurement= LS7366_read_counter(1);
Vincent9 0:980f29af9da6 47 rad = (2.0*PI)/6500*measurement;
Vincent9 0:980f29af9da6 48 speed = (rad - rad_old)/updateperiod;
Vincent9 0:980f29af9da6 49 rad_old = rad;
Vincent9 0:980f29af9da6 50
Vincent9 0:980f29af9da6 51 dc = SineAmp*sin(2.0*PI*cet/5.0);
Vincent9 0:980f29af9da6 52 mot_control(1,dc);
Vincent9 0:980f29af9da6 53 }
Vincent9 0:980f29af9da6 54
Vincent9 0:980f29af9da6 55 void StepCode() {
Vincent9 0:980f29af9da6 56 cet=t.read();
Vincent9 0:980f29af9da6 57 measurement = LS7366_read_counter(1);
Vincent9 0:980f29af9da6 58 rad = (2.0*PI)/6500*measurement;
Vincent9 0:980f29af9da6 59 speed = (rad - rad_old)/updateperiod;
Vincent9 0:980f29af9da6 60 rad_old = rad;
Vincent9 0:980f29af9da6 61
Vincent9 0:980f29af9da6 62 if(cet<0.1){
Vincent9 0:980f29af9da6 63 dc = 0.0;
Vincent9 0:980f29af9da6 64 } else{
Vincent9 0:980f29af9da6 65 dc = SineAmp;
Vincent9 0:980f29af9da6 66 }
Vincent9 0:980f29af9da6 67 mot_control(1,dc);
Vincent9 0:980f29af9da6 68 }
Vincent9 0:980f29af9da6 69
Vincent9 0:980f29af9da6 70