a

Dependencies:   mbed mbedWSEsbc

main.cpp

Committer:
Vincent9
Date:
2018-11-14
Revision:
0:980f29af9da6
Child:
1:da8fb81386ab

File content as of revision 0:980f29af9da6:

#include "mbed.h"
#include "mbedWSEsbc.h"
#define PI (3.14159)

float trt;        // Total run time
float cet;             // Current elapsed time
float updateperiod = 0.0083;      // Control update period (seconds) (120 Hz equivalent)
float dsp = 0.01;     // Data streaming period (seconds) (100 Hz equivalent)
//float ang,angp,speed;   // variables for approximating speed from encoder measurements
//float DCAmp;            // duty cycle applied to motor
float dc;               // duty cycle
//long enc1;              // encoder variable
float parameter;
float speed;
float DCAmp;
float measurement;
float rad;
float rad_old;

Ticker Controller;

void ctrCode ();
void StepCode();

int main() {
    mbedWSEsbcInit(115200);
    mot_en1.period(.020);
    
    while(1) {
        pc.scanf("%f,%f",&trt,&DCAmp);
        cet = 0;
        t.reset();
        Controller.attach(&StepCode,updateperiod);
        t.start();
        while (cet <= trt){
            pc.printf("%f,%f,%f\n",cet,speed,dc);
            wait(dsp);
            
            }
            Controller.detach();
            mot_control(1,0.0);
            }
        }
    void ctrCode() {
        cet=t.read();
        measurement= LS7366_read_counter(1);
        rad = (2.0*PI)/6500*measurement;
        speed = (rad - rad_old)/updateperiod;
        rad_old = rad;
        
        dc = SineAmp*sin(2.0*PI*cet/5.0);
        mot_control(1,dc);
        }
        
        void StepCode() {
            cet=t.read();
            measurement = LS7366_read_counter(1);
            rad = (2.0*PI)/6500*measurement;
            speed = (rad - rad_old)/updateperiod;
            rad_old = rad;
            
            if(cet<0.1){
                dc = 0.0;
                } else{
                    dc = SineAmp;
                    }
                    mot_control(1,dc);
            }