Niels Buch / Mbed 2 deprecated TrapPowerController_v2

Dependencies:   L6470_lib WakeUp mBuino_Sleep mbed

Fork of SleepyCounting by Andy A

Committer:
Njbuch
Date:
Sat Oct 24 07:35:52 2015 +0000
Revision:
1:48d96c61d130
Parent:
0:a9faf46beadf
First commit;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AndyA 0:a9faf46beadf 1 // example code on how to wake from sleep mode after a fixed period of time.
AndyA 0:a9faf46beadf 2
AndyA 0:a9faf46beadf 3 // Normal sleep we can use a timer but there isn't a huge power saving.
AndyA 0:a9faf46beadf 4
AndyA 0:a9faf46beadf 5 // DeepSleep or PowerDown we need to use the watchdog (via the WakeUp library)
AndyA 0:a9faf46beadf 6
AndyA 0:a9faf46beadf 7 #include "mbed.h"
AndyA 0:a9faf46beadf 8 #include "mBuinoSleep.h"
Njbuch 1:48d96c61d130 9 #include "WakeUp.h"
Njbuch 1:48d96c61d130 10 #include "L6470.h"
AndyA 0:a9faf46beadf 11
Njbuch 1:48d96c61d130 12 //SPI_MOSI is P0.21
Njbuch 1:48d96c61d130 13 //SPI_MISO is P0.22
Njbuch 1:48d96c61d130 14 //SPI_SCK is P1.15
Njbuch 1:48d96c61d130 15 //D10 is CS is P.11 (or another free pin)
Njbuch 1:48d96c61d130 16
Njbuch 1:48d96c61d130 17 //L6470SDC l6470(P0_21, P0_22, P1_15, P0_11);
Njbuch 1:48d96c61d130 18 L6470 Step(P0_21, P0_22, P1_15, P0_11, P0_15 );//mosi,miso,sck,#cs,busy(PullUp)
Njbuch 1:48d96c61d130 19
Njbuch 1:48d96c61d130 20 InterruptIn ActionButton(P0_4); // declare the input for the button (or for other single switch, such as movement switch). On mBuino P0.4 is close to GND
AndyA 0:a9faf46beadf 21
Njbuch 1:48d96c61d130 22
Njbuch 1:48d96c61d130 23 void interruptButtonPressed()
AndyA 0:a9faf46beadf 24 {
Njbuch 1:48d96c61d130 25 wait(0.5);
Njbuch 1:48d96c61d130 26 LEDs = 127;
Njbuch 1:48d96c61d130 27 wait(0.5);
Njbuch 1:48d96c61d130 28 LEDs = 0;
Njbuch 1:48d96c61d130 29 wait(0.5);
Njbuch 1:48d96c61d130 30 LEDs = 127;
Njbuch 1:48d96c61d130 31 wait(0.5);
Njbuch 1:48d96c61d130 32 LEDs = 0;
Njbuch 1:48d96c61d130 33 wait(0.5);
Njbuch 1:48d96c61d130 34 LEDs = 127;
Njbuch 1:48d96c61d130 35 wait(0.5);
Njbuch 1:48d96c61d130 36 LEDs = 127;
Njbuch 1:48d96c61d130 37 wait(0.5);
Njbuch 1:48d96c61d130 38 LEDs = 0;
Njbuch 1:48d96c61d130 39 wait(0.5);
Njbuch 1:48d96c61d130 40 LEDs = 127;
Njbuch 1:48d96c61d130 41 wait(0.5);
Njbuch 1:48d96c61d130 42 LEDs = 0;
Njbuch 1:48d96c61d130 43 wait(0.5);
Njbuch 1:48d96c61d130 44 LEDs = 127;
Njbuch 1:48d96c61d130 45 }
Njbuch 1:48d96c61d130 46
Njbuch 1:48d96c61d130 47 void blink(int count, int diode) {
Njbuch 1:48d96c61d130 48 int lednr = 1<<diode;
Njbuch 1:48d96c61d130 49
Njbuch 1:48d96c61d130 50 for(int i = 1; i <= count; i++) {
Njbuch 1:48d96c61d130 51 LEDs = lednr;
Njbuch 1:48d96c61d130 52 wait(0.2);
Njbuch 1:48d96c61d130 53 LEDs = 0;
Njbuch 1:48d96c61d130 54 wait(0.2);
Njbuch 1:48d96c61d130 55
Njbuch 1:48d96c61d130 56 }
Njbuch 1:48d96c61d130 57
Njbuch 1:48d96c61d130 58
AndyA 0:a9faf46beadf 59 }
Njbuch 1:48d96c61d130 60
AndyA 0:a9faf46beadf 61 int main ()
AndyA 0:a9faf46beadf 62 {
Njbuch 1:48d96c61d130 63 blink(5,0);
Njbuch 1:48d96c61d130 64 ActionButton.fall(interruptButtonPressed); // using the fall requires the button to be unpressed before the interrupt is triggered again
Njbuch 1:48d96c61d130 65 blink(5,1);
Njbuch 1:48d96c61d130 66 WakeUp::calibrate();
Njbuch 1:48d96c61d130 67 blink(5,2);
Njbuch 1:48d96c61d130 68 Step.Resets();
Njbuch 1:48d96c61d130 69 Step.ReleseSW(0,1);//
Njbuch 1:48d96c61d130 70 Step.Run(0, 30);
Njbuch 1:48d96c61d130 71 blink(5,3);
AndyA 0:a9faf46beadf 72
AndyA 0:a9faf46beadf 73 while (1) {
AndyA 0:a9faf46beadf 74 wait(0.1);
Njbuch 1:48d96c61d130 75 WakeUp::set_ms(1000*5);
AndyA 0:a9faf46beadf 76 mBuinoSleep(PowerDownWD);
AndyA 0:a9faf46beadf 77 if (LEDs == 127)
AndyA 0:a9faf46beadf 78 LEDs = 1;
AndyA 0:a9faf46beadf 79 else
AndyA 0:a9faf46beadf 80 LEDs = LEDs + 1;
AndyA 0:a9faf46beadf 81 }
AndyA 0:a9faf46beadf 82 }