MicroBit clock based on DS3231
Diff: source/main.cpp
- Revision:
- 15:99935d0cf6f3
- Parent:
- 14:f0c2bf30af76
- Child:
- 16:0a313dbeb63e
--- a/source/main.cpp Wed Aug 17 13:27:53 2016 +0000 +++ b/source/main.cpp Thu Aug 18 08:58:57 2016 +0000 @@ -91,6 +91,8 @@ DS3231 has 2 alarms, so alarm clock feature with speaker/music attached to MicroBit is a good future mod. +Added PIR to act as powersaver but its a bit buggy to say the least! + */ #include "MicroBit.h" #include "ds3231.h" @@ -112,10 +114,7 @@ char * weekdaya[7]= {"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"} ; char * montha[12]= {"January","February","March","April","May","June","July","August","September","October","November","December"}; int displayMode = 0; -bool showScreen = false; -int showTime=0; -int P2_value; -//MicroBitPin P2(MICROBIT_ID_IO_P2, MICROBIT_PIN_P2, PIN_CAPABILITY_ANALOG); + // predeclare functions void getTimeAndDate(); void setTimeAndDate(); @@ -124,7 +123,7 @@ void displayTime(); void displayTemp(); void displaySeconds(); -void setShowTime(); + void getTimeAndDate() { @@ -366,14 +365,7 @@ uBit.display.scroll(iss); } -void setShowTime() -{ - P2_value = uBit.io.P2.getAnalogValue(); - if (P2_value > 400) showTime=0; - showTime ++; - if (showTime > 3) showScreen = false; - else showScreen = true; -} + int main(void) { @@ -382,21 +374,17 @@ while (true) { - setShowTime(); - uBit.sleep(250); - if (showScreen) { - displayTimeAndDate(); - if (uBit.buttonB.isPressed()) { - displayMode ++; - if(displayMode > 4) displayMode=0; - } - - if (uBit.buttonAB.isPressed()) setTimeAndDate(); - + getTimeAndDate(); + displayTimeAndDate(); + if (uBit.buttonB.isPressed()) { + displayMode ++; + if(displayMode > 4) displayMode=0; } + if (uBit.buttonAB.isPressed()) setTimeAndDate(); + } - } + // forever, in a power efficient sleep. release_fiber();