Demonstrates the use of the LPC1114_Deep_Power_Down library with the NOKIA_5110 library

Dependencies:   LPC1114_Deep_Power_Down NOKIA_5110 mbed

Revision:
0:5459444bb4f0
Child:
1:118bef2666a8
diff -r 000000000000 -r 5459444bb4f0 main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sat Jan 03 17:33:30 2015 +0000
@@ -0,0 +1,101 @@
+/*
+ *  LPC1114_5110_PIR
+ *
+ *  Created on: Dec 26, 2014
+ *      Author: bundgus
+ *	
+ *	Demonstrates the use of the LPC1114_Deep_Power_Down library with the NOKIA_5110 library
+ */
+
+#include "mbed.h"
+#include "DeepPowerDown.h"
+#include "NOKIA_5110.h"
+#include <string>
+
+#define startup_countdown 5
+
+// high-level hardware interfaces
+DeepPowerDown pd;
+LcdPins myLcdPins = { dp2, NC, dp6, dp4, dp5, dp1 };  // mosi, miso, sclk, dc, sce, rst
+NokiaLcd myLcd( myLcdPins );
+DigitalOut backlight(dp14);
+
+void startup(){
+	// Turn on LCD Backlight
+    backlight = 1;
+    
+    // Start the LCD
+    myLcd.InitLcd();
+	myLcd.ClearLcdMem();
+}
+
+void shutdown(){
+	myLcd.ShutdownLcd();
+	backlight = 0;
+	pd.powerDown();
+}
+
+void s_firstRun(){
+	pd.setGPREG4(1); // set next startup state to motionWake
+	myLcd.SetXY(0,2);
+	myLcd.DrawString("   Arming in  ");
+	
+	char cd_c[14];
+	
+	for (int cd = startup_countdown; cd>0 ; cd--){
+		myLcd.SetXY(0,3);
+		myLcd.DrawString("      ");
+		if (cd < 10){
+			myLcd.DrawString("0");
+			}
+		sprintf (cd_c, "%ld", cd);
+		myLcd.DrawString(cd_c);
+		myLcd.SetXY(0,4);
+		myLcd.DrawString("   seconds    ");
+		wait_ms(1000);
+	}
+}
+
+void s_motionWake(){
+	myLcd.SetXY(0,0);
+	myLcd.DrawString("    MOTION    ");
+	myLcd.DrawString("   DETECTED   ");
+	// buffer for gpr 0-4 register string values - 84 columns / 6 columns per char = 14
+	char gpreg0_c[14];  
+	
+	unsigned int gpreg0_i = pd.getGPREG0();
+	
+	sprintf (gpreg0_c, "%ld", gpreg0_i);   
+	
+	myLcd.SetXY(42-((int)log10((float)gpreg0_i) + 1)*3,2);
+	myLcd.DrawString(gpreg0_c);
+	
+	myLcd.SetXY(0,3);
+	myLcd.DrawString("    TIMES     ");
+	
+	wait_ms(20000);
+	pd.setGPREG0(gpreg0_i + 1);
+
+}
+
+int main(void) {
+	unsigned int gpreg4_i = pd.getGPREG4();  // gpreg4 = next application start state
+	
+	startup();
+	
+	switch(gpreg4_i){
+    case 0 :
+       s_firstRun();
+       break;
+    case 1 :
+       s_motionWake();
+       break;
+    default : /* Optional */
+       break;// unknown state
+	}
+	
+	shutdown();
+}
+
+
+