Niels Leijen / PowerControl
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?

UserRevisionLine numberNew 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 }