Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: L6470_lib WakeUp mBuino_Sleep mbed
Fork of SleepyCounting by
main.cpp@1:48d96c61d130, 2015-10-24 (annotated)
- 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?
User | Revision | Line number | New 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 | } |