From e704cc1193babd25db46055a6de436be687aba18 Mon Sep 17 00:00:00 2001
From: Daniel Friesel <daniel.friesel@uos.de>
Date: Fri, 17 Jul 2020 15:41:13 +0200
Subject: Add mmsubstate driver for sub-state detection evaluation

mmsubstate is a synthetic peripheral which uses a LED to create well-defined
power sub-states in select power states.
---
 include/driver/mmsubstate.h | 24 ++++++++++++++++++++++++
 1 file changed, 24 insertions(+)
 create mode 100644 include/driver/mmsubstate.h

(limited to 'include/driver/mmsubstate.h')

diff --git a/include/driver/mmsubstate.h b/include/driver/mmsubstate.h
new file mode 100644
index 0000000..3338dbc
--- /dev/null
+++ b/include/driver/mmsubstate.h
@@ -0,0 +1,24 @@
+#ifndef MMSUBSTATE_H
+#define MMSUBSTATE_H
+
+class MicroMoodySubstate {
+	private:
+		MicroMoodySubstate(const MicroMoodySubstate &copy);
+
+		unsigned char const address;
+		unsigned char txbuf[3];
+
+	public:
+		MicroMoodySubstate(unsigned char const addr) : address(addr) {}
+
+		void sleep();
+		void noSubstates(unsigned char power1, unsigned char power2);
+		void twoSubstates(unsigned char switchDutarion, unsigned char power);
+		void fourSubstates(unsigned char switchDutarion, unsigned char power);
+		void eightSubstates(unsigned char switchDutarion, unsigned char power);
+		void setSubstates(unsigned char substateCount, unsigned char switchDuration, unsigned char power);
+};
+
+extern MicroMoodySubstate moody;
+
+#endif
-- 
cgit v1.2.3