pimoroni-pico/examples/badger2040/badger2040_sleep.cpp

66 lines
1.6 KiB
C++

#include "pico/stdlib.h"
#include <stdio.h>
#include <cstring>
#include <string>
#include <algorithm>
#include "pico/time.h"
#include "pico/platform.h"
#include "common/pimoroni_common.hpp"
#include "badger2040.hpp"
using namespace pimoroni;
// this simple example tells you which button was used to wake up
// Badger2040 and then immediately halts again on another button press
Badger2040 badger;
int main() {
badger.init();
// find which button was used to wake up
std::string button = "";
std::string message = "started up.";
if(badger.pressed_to_wake(badger.A)) { button += "A"; }
if(badger.pressed_to_wake(badger.B)) { button += "B"; }
if(badger.pressed_to_wake(badger.C)) { button += "C"; }
if(badger.pressed_to_wake(badger.D)) { button += "D"; }
if(badger.pressed_to_wake(badger.E)) { button += "E"; }
if(button != "") {
message = "woken up by button " + button + ".";
}
badger.thickness(2);
badger.pen(15);
badger.clear();
badger.pen(0);
badger.text(message, 10, 20, 0.6f);
badger.text("(press any button to go to sleep.)", 10, 70, 0.4f);
badger.update();
badger.wait_for_press();
badger.pen(15);
badger.clear();
badger.pen(0);
badger.text("going back to sleep...", 10, 20, 0.6f);
badger.text("z", 220, 50, 0.6f);
badger.text("z", 230, 40, 0.8f);
badger.text("z", 240, 30, 1.0f);
badger.text("(press any button to wake up.)", 10, 70, 0.4f);
badger.update();
while (badger.is_busy()) {
sleep_ms(10);
}
badger.halt();
// proof we halted, the LED will not turn on
badger.led(255);
}