altb_pmic / Mbed 2 deprecated GP2Y0A-Infrared_Distance_Sensor

Dependencies:   mbed

Committer:
pmic
Date:
Mon Aug 12 13:29:07 2019 +0000
Revision:
0:8080080b83cf
delete old comments

Who changed what in which revision?

UserRevisionLine numberNew contents of line
pmic 0:8080080b83cf 1 #include "mbed.h"
pmic 0:8080080b83cf 2 #include "IIR_filter.h"
pmic 0:8080080b83cf 3
pmic 0:8080080b83cf 4 /* Notes pmic 07.08.2019:
pmic 0:8080080b83cf 5 - ...
pmic 0:8080080b83cf 6 */
pmic 0:8080080b83cf 7
pmic 0:8080080b83cf 8 AnalogIn dist(PC_4); // analog IN (acc x) on PA_0
pmic 0:8080080b83cf 9 float d = 0.0f;
pmic 0:8080080b83cf 10
pmic 0:8080080b83cf 11 Serial pc(SERIAL_TX, SERIAL_RX); // serial connection via USB - programmer
pmic 0:8080080b83cf 12 InterruptIn Button(USER_BUTTON); // User Button
pmic 0:8080080b83cf 13 Ticker LoopTimer; // interrupt for control loop
pmic 0:8080080b83cf 14 Timer t; // timer to analyse Button
pmic 0:8080080b83cf 15
pmic 0:8080080b83cf 16 int k;
pmic 0:8080080b83cf 17 bool doRun = false;
pmic 0:8080080b83cf 18 float Ts = 0.05f; // sample time of main loop, 50 Hz
pmic 0:8080080b83cf 19
pmic 0:8080080b83cf 20 IIR_filter pt1(0.5f, Ts, 1.0f);
pmic 0:8080080b83cf 21 float df = 0.0f;
pmic 0:8080080b83cf 22
pmic 0:8080080b83cf 23 // user defined functions
pmic 0:8080080b83cf 24 void updateLoop(void); // loop (via interrupt)
pmic 0:8080080b83cf 25 void pressed(void); // user Button pressed
pmic 0:8080080b83cf 26 void released(void); // user Button released
pmic 0:8080080b83cf 27
pmic 0:8080080b83cf 28 // main program and control loop
pmic 0:8080080b83cf 29 // -----------------------------------------------------------------------------
pmic 0:8080080b83cf 30 int main()
pmic 0:8080080b83cf 31 {
pmic 0:8080080b83cf 32 pc.baud(2000000); // for serial comm.
pmic 0:8080080b83cf 33 LoopTimer.attach(&updateLoop, Ts); // attach loop to timer interrupt
pmic 0:8080080b83cf 34 Button.fall(&pressed); // attach key pressed function
pmic 0:8080080b83cf 35 Button.rise(&released); // attach key pressed function
pmic 0:8080080b83cf 36 k = 0;
pmic 0:8080080b83cf 37 pt1.reset(0.0f);
pmic 0:8080080b83cf 38 }
pmic 0:8080080b83cf 39
pmic 0:8080080b83cf 40 // the updateLoop starts as soon as you pressed the blue botton
pmic 0:8080080b83cf 41 void updateLoop(void)
pmic 0:8080080b83cf 42 {
pmic 0:8080080b83cf 43 // d = usGain*rangefinder() + usOffset;
pmic 0:8080080b83cf 44 d = dist.read();
pmic 0:8080080b83cf 45 df = pt1(d);
pmic 0:8080080b83cf 46 if(doRun) {
pmic 0:8080080b83cf 47 ///*
pmic 0:8080080b83cf 48 // use this section to do dynamical measurements
pmic 0:8080080b83cf 49 if(doRun && k++ < 1600) {
pmic 0:8080080b83cf 50 pc.printf("%10i %10.9e\r\n", k, d);
pmic 0:8080080b83cf 51 }
pmic 0:8080080b83cf 52 //*/
pmic 0:8080080b83cf 53 /*
pmic 0:8080080b83cf 54 // use this section to do static measurements
pmic 0:8080080b83cf 55 if(doRun && k++%25 == 0) {
pmic 0:8080080b83cf 56 pc.printf("%10i %10.6e\r\n", k, df);
pmic 0:8080080b83cf 57 }
pmic 0:8080080b83cf 58 */
pmic 0:8080080b83cf 59 }
pmic 0:8080080b83cf 60 }
pmic 0:8080080b83cf 61
pmic 0:8080080b83cf 62 // buttonhandling
pmic 0:8080080b83cf 63 // -----------------------------------------------------------------------------
pmic 0:8080080b83cf 64 // start timer as soon as button is pressed
pmic 0:8080080b83cf 65 void pressed()
pmic 0:8080080b83cf 66 {
pmic 0:8080080b83cf 67 t.start();
pmic 0:8080080b83cf 68 }
pmic 0:8080080b83cf 69
pmic 0:8080080b83cf 70 // evaluating statemachine
pmic 0:8080080b83cf 71 void released()
pmic 0:8080080b83cf 72 {
pmic 0:8080080b83cf 73 // toggle state over boolean
pmic 0:8080080b83cf 74 if(doRun) {
pmic 0:8080080b83cf 75 k = 0;
pmic 0:8080080b83cf 76 pt1.reset(0.0f);
pmic 0:8080080b83cf 77 }
pmic 0:8080080b83cf 78 doRun = !doRun;
pmic 0:8080080b83cf 79 t.stop();
pmic 0:8080080b83cf 80 t.reset();
pmic 0:8080080b83cf 81 }
pmic 0:8080080b83cf 82