PushToGo on STM32F429-Disco Board
Dependencies: BSP_DISCO_F429ZI LCD_DISCO_F429ZI pushtogo usb
MCULoadMeasurement.h@8:f0455a1d4709, 2018-09-23 (annotated)
- Committer:
- caoyu@caoyuan9642-desktop.MIT.EDU
- Date:
- Sun Sep 23 02:31:28 2018 -0400
- Revision:
- 8:f0455a1d4709
- Parent:
- 1:64c1fd738059
merge
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 |