State machine
Dependencies: mbed Adafruit_GFX BioroboticsMotorControl MODSERIAL BioroboticsEMGFilter
Screen.h
- Committer:
- brass_phoenix
- Date:
- 2018-10-30
- Revision:
- 5:2632dfc8454c
- Parent:
- 4:5a44ab7e94b3
- Child:
- 6:bfc6e68774f5
File content as of revision 5:2632dfc8454c:
#pragma once #include "mbed.h" #include <string> // Uncomment this in the adafruit config.h to turn off the builtin splash //#define NO_SPLASH_ADAFRUIT // Uncomment this in the adafruit config.h to enable all functionality //#define GFX_WANT_ABSTRACTS #include "Adafruit_SSD1306.h" class Screen { private: I2C i2c; Adafruit_SSD1306_I2c oled; public: // The screen we use doesn't have a reset pin, but it needs one anyway. // Use a pin we don't use. Screen(PinName sda, PinName scl, PinName reset): i2c(sda, scl), oled(i2c, reset) { // according to the spec the max bitrate for the SSD1308 is 400 kbit/s i2c.frequency(400000); clear_display(); } void clear_display() { oled.clearDisplay(); display(); } void display() { // Apparently the display only updates every 2 "display" calls. // This is a bug in the library. oled.display(); oled.display(); } // State names can be a maximum of 17 characters long. void display_state_name(string name) { // Clear a previous title. oled.setTextCursor(0, 0); oled.printf(" "); oled.setTextCursor(0, 0); oled.printf("- "); oled.printf(name.c_str()); oled.printf(" -"); display(); } // Returns a direct handle to the screen. // Be carefull while using the handle. Adafruit_SSD1306_I2c get_screen_handle() { return oled; } };