Demonstrates the use of the LPC1114_Deep_Power_Down library with the NOKIA_5110 library
Dependencies: LPC1114_Deep_Power_Down NOKIA_5110 mbed
Diff: main.cpp
- Revision:
- 0:5459444bb4f0
- Child:
- 1:118bef2666a8
--- /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(); +} + + +