PushToGo on STM32F429-Disco Board

Dependencies:   BSP_DISCO_F429ZI LCD_DISCO_F429ZI pushtogo usb

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?

UserRevisionLine numberNew 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