PushToGo on STM32F429-Disco Board

Dependencies:   BSP_DISCO_F429ZI LCD_DISCO_F429ZI pushtogo usb

MCULoadMeasurement.h

Committer:
caoyu@caoyuan9642-desktop.MIT.EDU
Date:
2018-09-23
Revision:
8:f0455a1d4709
Parent:
1:64c1fd738059

File content as of revision 8:f0455a1d4709:

#ifndef MCULOADMEASUREMENT_H_
#define MCULOADMEASUREMENT_H_

#include "mbed.h"

class MCULoadMeasurement
{
protected:
	Timer t;
	Timer t_active;
public:

	MCULoadMeasurement()
	{
		t.start();
		t_active.start();
	}
	virtual ~MCULoadMeasurement()
	{
	}

	virtual void reset()
	{
		t.reset();
		t_active.reset();
	}

	virtual float getCPUUsage()
	{
		return t_active.read() / t.read();
	}

	virtual void setMCUActive(bool active)
	{
		if (active) //idle task sched out
		{
			t_active.start();
		}
		else //idle task sched in
		{
			t_active.stop();
		}
	}

	static MCULoadMeasurement &getInstance()
	{
		static MCULoadMeasurement m;
		return m;
	}
};

#endif // MCULOADMEASUREMENT_H_