Michael Ernst Peter
/
RT2_Cuboid
Cuboid.
Controller.h@25:a9a8e60ff1c2, 18 months ago (annotated)
- 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?
User | Revision | Line number | New 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 |