PushToGo on STM32F429-Disco Board
Dependencies: BSP_DISCO_F429ZI LCD_DISCO_F429ZI pushtogo usb
MCULoadMeasurement.h@1:64c1fd738059, 2018-09-09 (annotated)
- Committer:
- caoyuan9642
- Date:
- Sun Sep 09 19:03:27 2018 +0000
- Revision:
- 1:64c1fd738059
updated docs
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
caoyuan9642 | 1:64c1fd738059 | 1 | #ifndef MCULOADMEASUREMENT_H_ |
caoyuan9642 | 1:64c1fd738059 | 2 | #define MCULOADMEASUREMENT_H_ |
caoyuan9642 | 1:64c1fd738059 | 3 | |
caoyuan9642 | 1:64c1fd738059 | 4 | #include "mbed.h" |
caoyuan9642 | 1:64c1fd738059 | 5 | |
caoyuan9642 | 1:64c1fd738059 | 6 | class MCULoadMeasurement |
caoyuan9642 | 1:64c1fd738059 | 7 | { |
caoyuan9642 | 1:64c1fd738059 | 8 | protected: |
caoyuan9642 | 1:64c1fd738059 | 9 | Timer t; |
caoyuan9642 | 1:64c1fd738059 | 10 | Timer t_active; |
caoyuan9642 | 1:64c1fd738059 | 11 | public: |
caoyuan9642 | 1:64c1fd738059 | 12 | |
caoyuan9642 | 1:64c1fd738059 | 13 | MCULoadMeasurement() |
caoyuan9642 | 1:64c1fd738059 | 14 | { |
caoyuan9642 | 1:64c1fd738059 | 15 | t.start(); |
caoyuan9642 | 1:64c1fd738059 | 16 | t_active.start(); |
caoyuan9642 | 1:64c1fd738059 | 17 | } |
caoyuan9642 | 1:64c1fd738059 | 18 | virtual ~MCULoadMeasurement() |
caoyuan9642 | 1:64c1fd738059 | 19 | { |
caoyuan9642 | 1:64c1fd738059 | 20 | } |
caoyuan9642 | 1:64c1fd738059 | 21 | |
caoyuan9642 | 1:64c1fd738059 | 22 | virtual void reset() |
caoyuan9642 | 1:64c1fd738059 | 23 | { |
caoyuan9642 | 1:64c1fd738059 | 24 | t.reset(); |
caoyuan9642 | 1:64c1fd738059 | 25 | t_active.reset(); |
caoyuan9642 | 1:64c1fd738059 | 26 | } |
caoyuan9642 | 1:64c1fd738059 | 27 | |
caoyuan9642 | 1:64c1fd738059 | 28 | virtual float getCPUUsage() |
caoyuan9642 | 1:64c1fd738059 | 29 | { |
caoyuan9642 | 1:64c1fd738059 | 30 | return t_active.read() / t.read(); |
caoyuan9642 | 1:64c1fd738059 | 31 | } |
caoyuan9642 | 1:64c1fd738059 | 32 | |
caoyuan9642 | 1:64c1fd738059 | 33 | virtual void setMCUActive(bool active) |
caoyuan9642 | 1:64c1fd738059 | 34 | { |
caoyuan9642 | 1:64c1fd738059 | 35 | if (active) //idle task sched out |
caoyuan9642 | 1:64c1fd738059 | 36 | { |
caoyuan9642 | 1:64c1fd738059 | 37 | t_active.start(); |
caoyuan9642 | 1:64c1fd738059 | 38 | } |
caoyuan9642 | 1:64c1fd738059 | 39 | else //idle task sched in |
caoyuan9642 | 1:64c1fd738059 | 40 | { |
caoyuan9642 | 1:64c1fd738059 | 41 | t_active.stop(); |
caoyuan9642 | 1:64c1fd738059 | 42 | } |
caoyuan9642 | 1:64c1fd738059 | 43 | } |
caoyuan9642 | 1:64c1fd738059 | 44 | |
caoyuan9642 | 1:64c1fd738059 | 45 | static MCULoadMeasurement &getInstance() |
caoyuan9642 | 1:64c1fd738059 | 46 | { |
caoyuan9642 | 1:64c1fd738059 | 47 | static MCULoadMeasurement m; |
caoyuan9642 | 1:64c1fd738059 | 48 | return m; |
caoyuan9642 | 1:64c1fd738059 | 49 | } |
caoyuan9642 | 1:64c1fd738059 | 50 | }; |
caoyuan9642 | 1:64c1fd738059 | 51 | |
caoyuan9642 | 1:64c1fd738059 | 52 | #endif // MCULOADMEASUREMENT_H_ |
caoyuan9642 | 1:64c1fd738059 | 53 |