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.
PowerControl.cpp@2:1e3291e8294d, 2017-05-12 (annotated)
- Committer:
- kwasymodo
- Date:
- Fri May 12 20:19:17 2017 +0000
- Revision:
- 2:1e3291e8294d
- Parent:
- 1:1bae9ab7241e
- Child:
- 3:54792b95c570
Added CanControl;
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| kwasymodo | 0:f7568c04c1c3 | 1 | #include "PowerControl.h" |
| kwasymodo | 0:f7568c04c1c3 | 2 | |
| kwasymodo | 1:1bae9ab7241e | 3 | extern RawSerial pc; |
| kwasymodo | 2:1e3291e8294d | 4 | //extern DigitalOut ledError; |
| kwasymodo | 2:1e3291e8294d | 5 | extern CAN can; |
| kwasymodo | 1:1bae9ab7241e | 6 | |
| kwasymodo | 2:1e3291e8294d | 7 | PowerControl::PowerControl(PinName button): |
| kwasymodo | 2:1e3291e8294d | 8 | _button(button), _canControl(BUCK2) |
| kwasymodo | 0:f7568c04c1c3 | 9 | { |
| kwasymodo | 2:1e3291e8294d | 10 | enabled = false; |
| kwasymodo | 2:1e3291e8294d | 11 | |
| kwasymodo | 2:1e3291e8294d | 12 | _button.setSamplesTillHeld( 200 ); |
| kwasymodo | 2:1e3291e8294d | 13 | _button.attach_asserted_held( this, &PowerControl::goSleep ); |
| kwasymodo | 2:1e3291e8294d | 14 | _button.attach_asserted( this, &PowerControl::goWakeup ); |
| kwasymodo | 0:f7568c04c1c3 | 15 | } |
| kwasymodo | 0:f7568c04c1c3 | 16 | |
| kwasymodo | 2:1e3291e8294d | 17 | void PowerControl::goSleep(){ |
| kwasymodo | 2:1e3291e8294d | 18 | #ifdef DEBUG |
| kwasymodo | 1:1bae9ab7241e | 19 | pc.printf("going to sleep\r\n"); |
| kwasymodo | 2:1e3291e8294d | 20 | #endif |
| kwasymodo | 2:1e3291e8294d | 21 | enabled = false; |
| kwasymodo | 0:f7568c04c1c3 | 22 | |
| kwasymodo | 2:1e3291e8294d | 23 | //while(!biemDisable()); |
| kwasymodo | 2:1e3291e8294d | 24 | while(!_canControl.disable()); // must be last |
| kwasymodo | 2:1e3291e8294d | 25 | |
| kwasymodo | 2:1e3291e8294d | 26 | #ifdef DEBUG |
| kwasymodo | 2:1e3291e8294d | 27 | pc.printf("zzzzzzzzz.....r\n"); |
| kwasymodo | 2:1e3291e8294d | 28 | #endif |
| kwasymodo | 2:1e3291e8294d | 29 | |
| kwasymodo | 1:1bae9ab7241e | 30 | sleep(); |
| kwasymodo | 2:1e3291e8294d | 31 | } |
| kwasymodo | 2:1e3291e8294d | 32 | |
| kwasymodo | 2:1e3291e8294d | 33 | void PowerControl::goWakeup(){ |
| kwasymodo | 2:1e3291e8294d | 34 | if(!enabled){ |
| kwasymodo | 2:1e3291e8294d | 35 | #ifdef DEBUG |
| kwasymodo | 2:1e3291e8294d | 36 | pc.printf("waking up\r\n"); |
| kwasymodo | 2:1e3291e8294d | 37 | #endif |
| kwasymodo | 2:1e3291e8294d | 38 | while(!_canControl.enable()); // must be first |
| kwasymodo | 2:1e3291e8294d | 39 | //while(!biemEnable()); |
| kwasymodo | 2:1e3291e8294d | 40 | |
| kwasymodo | 2:1e3291e8294d | 41 | |
| kwasymodo | 2:1e3291e8294d | 42 | #ifdef DEBUG |
| kwasymodo | 2:1e3291e8294d | 43 | pc.printf("fully awake\r\n"); |
| kwasymodo | 2:1e3291e8294d | 44 | #endif |
| kwasymodo | 2:1e3291e8294d | 45 | } |
| kwasymodo | 2:1e3291e8294d | 46 | } |