Cuboid.

Dependencies:   Cntrl_Libary

Committer:
pmic
Date:
Thu Nov 17 22:58:05 2022 +0000
Revision:
25:a9a8e60ff1c2
Parent:
22:d8ffc6c99c6a
Updated Cntrl_Libary version and changed .hgignore

Who changed what in which revision?

UserRevisionLine numberNew contents of line
pmic 17:0a980eacc81b 1 #ifndef CONTROLLER_H_
pmic 17:0a980eacc81b 2 #define CONTROLLER_H_
pmic 17:0a980eacc81b 3
pmic 17:0a980eacc81b 4 /* Cntrl_Libary */
pmic 17:0a980eacc81b 5 #include "EncoderCounter.h"
pmic 18:80ae4035475f 6 #include "IIR_filter.h"
pmic 17:0a980eacc81b 7 #include "LinearCharacteristics.h"
pmic 17:0a980eacc81b 8 #include "PID_Cntrl.h"
pmic 17:0a980eacc81b 9 #include "ThreadFlag.h"
pmic 17:0a980eacc81b 10
pmic 17:0a980eacc81b 11 class Controller
pmic 17:0a980eacc81b 12 {
pmic 17:0a980eacc81b 13 public:
pmic 17:0a980eacc81b 14
pmic 17:0a980eacc81b 15 Controller(float Ts);
pmic 17:0a980eacc81b 16
pmic 17:0a980eacc81b 17 virtual ~Controller();
pmic 18:80ae4035475f 18
pmic 18:80ae4035475f 19 void reset();
pmic 18:80ae4035475f 20 void start_loop();
pmic 17:0a980eacc81b 21
pmic 17:0a980eacc81b 22 private:
pmic 17:0a980eacc81b 23
pmic 18:80ae4035475f 24 Timer user_button_timer, loop_timer;
pmic 18:80ae4035475f 25 float time_offset;
pmic 18:80ae4035475f 26 bool executeMainTask, isFirstTimeMeas;
pmic 18:80ae4035475f 27 InterruptIn user_button;
pmic 17:0a980eacc81b 28
pmic 17:0a980eacc81b 29 float Ts;
pmic 18:80ae4035475f 30
pmic 18:80ae4035475f 31 EncoderCounter encoderCounter;
pmic 18:80ae4035475f 32 short count_past;
pmic 18:80ae4035475f 33 long count;
pmic 18:80ae4035475f 34 AnalogIn u_accx, u_accy, u_gyro;
pmic 18:80ae4035475f 35 AnalogOut u_i;
pmic 18:80ae4035475f 36 float time, accx, accy, gyro, phi1, phi2, dphi2, M;
pmic 18:80ae4035475f 37 LinearCharacteristics u2accx, u2accy, u2gyro, i2u;
pmic 18:80ae4035475f 38 IIR_filter Gacc, Ggyro, Gdiff, Gf;
pmic 18:80ae4035475f 39 PID_Cntrl Ci;
pmic 17:0a980eacc81b 40
pmic 18:80ae4035475f 41 BufferedSerial bufferedSerial;
pmic 18:80ae4035475f 42 char buffer[200];
pmic 18:80ae4035475f 43 int write_counter, write_counter_write_val;
pmic 17:0a980eacc81b 44
pmic 18:80ae4035475f 45 Mutex mutex;
pmic 18:80ae4035475f 46 ThreadFlag threadFlag;
pmic 18:80ae4035475f 47 Thread thread;
pmic 18:80ae4035475f 48 Ticker ticker;
pmic 18:80ae4035475f 49
pmic 18:80ae4035475f 50 void loop();
pmic 18:80ae4035475f 51 void sendThreadFlag();
pmic 18:80ae4035475f 52
pmic 18:80ae4035475f 53 void button_fall();
pmic 18:80ae4035475f 54 void button_rise();
pmic 17:0a980eacc81b 55 };
pmic 17:0a980eacc81b 56
pmic 17:0a980eacc81b 57 #endif