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.
Dependents: YATTT sd_map_test cPong SnowDemo ... more
PokittoLib
Library for programming Pokitto hardware
How to Use
- Import this library to online compiler (see button "import" on the right hand side
- DO NOT import mbed-src anymore, a better version is now included inside PokittoLib
- Change My_settings.h according to your project
- Start coding!
Diff: POKITTO_CORE/PokittoCore.h
- Revision:
- 19:d1cf5dff4c21
- Parent:
- 18:831e2801d466
- Child:
- 20:fa6899411a24
diff -r 831e2801d466 -r d1cf5dff4c21 POKITTO_CORE/PokittoCore.h
--- a/POKITTO_CORE/PokittoCore.h Sat Oct 21 17:22:47 2017 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,263 +0,0 @@
-/**************************************************************************/
-/*!
- @file PokittoCore.h
- @author Jonne Valola
-
- @section LICENSE
-
- Software License Agreement (BSD License)
-
- Copyright (c) 2016, Jonne Valola
- All rights reserved.
-
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in the
- documentation and/or other materials provided with the distribution.
- 3. Neither the name of the copyright holders nor the
- names of its contributors may be used to endorse or promote products
- derived from this software without specific prior written permission.
-
- THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY
- EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY
- DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-/**************************************************************************/
-
-#ifndef POKITTOCORE_H
-#define POKITTOCORE_H
-
-#include <stdint.h>
-#include <math.h>
-#ifndef POK_SIM
- #include "pwmout_api.h"
- #include "HWButtons.h"
-#else
- #include "PokittoSimulator.h"
-#endif
-#if POK_USE_CONSOLE > 0
- #include "PokittoConsole.h"
-#endif // POK_USE_CONSOLE
-#if POK_ENABLE_SD > 0
- #include "PokittoDisk.h"
-#endif
-
-#include "PokittoFonts.h"
-#include "PokittoPalettes.h"
-#include "PokittoDisplay.h"
-#include "PokittoButtons.h"
-#include "PokittoBattery.h"
-#include "PokittoBacklight.h"
-#include "PokittoSound.h"
-#include "PokittoFakeavr.h"
-
-#define PALETTE_SIZE 16
-#define PI 3.141592741f
-
-// For GB compatibility
-#if PROJ_GAMEBUINO > 0
-extern void setup();
-extern void loop();
-#endif // PROJ_GAMEBUINO
-
-extern uint32_t* ptimer; // re-directed tick counter
-
-namespace Pokitto {
-
-/** Core class.
- * The Core class is a class consisting of static data and methods.
- * It handles the lowlevel hardware functions of the Pokitto.
- * It is declared as static to prevent several instances running at same time.
- * Example:
- * @code
- * // A simple "Hello World!" program with Pokitto
- *
- * #include "Pokitto.h"
- *
- * Pokitto::Core myApp;
- *
- * int main() {
- * myApp.begin(); // This starts up the console (the display, buttons etc.)
- * while(myApp.isRunning()) {
- * if(myApp.Update()) {
- * myApp.display.print("Hello World!");
- * }
- * }
- * }
- * @endcode
- */
-
-class Core
-{
-public:
- /** Create a Core runtime instance
- */
- Core();
-
- /** Backlight component of the Core runtime */
- static Backlight backlight;
- /** Buttons component of the Core runtime */
- static Buttons buttons;
- /** Battery component of the Core runtime */
- static Battery battery;
- /** Sound component of the Core runtime */
- static Sound sound;
- /** Display component of the Core runtime */
- static Display display;
-
- // EXCECUTION CONTROL
-public:
- /** Initialize runtime (use this one) */
- static void begin();
- /** Initialize runtime (deprecated, avoid) */
- static void init();
- /** Initialize runtime with options (deprecated, avoid) */
- static void init(uint8_t);
- /** Return run state (1 = running, 0 = shutting down) */
- static bool isRunning();
- /** Stop running */
- static void quit();
-private:
- /** run_state is true as long as program is running */
- static bool run_state;
-
-public:
- // INITIALIZATION
- /** Initialize display */
- static void initDisplay();
- /** Initialize random generator */
- static void initRandom();
- /** Initialize GPIO */
- static void initGPIO();
- /** Initialize LCD */
- static void initLCD();
- /** Initialize Audio */
- static void initAudio();
-
-
- // DISPLAY
-public:
- /** Initialize backlight */
- static void initBacklight();
-
-private:
- /** Backlight PWM pointer */
- #ifndef POK_SIM
- static pwmout_t backlightpwm;
- #endif
-
- // TIMEKEEPING
-public:
- /** Initialize runtime clock */
- static void initClock();
- /** Get value of time elapsed during program in milliseconds */
- static uint32_t getTime();
- /** Wait for n milliseconds */
- static void wait(uint16_t);
-private:
- /** Time of next refresh */
- static uint32_t refreshtime;
-
- // DIRECT TO SCREEN
-public:
- /** Display Pokitto logo */
- static void showLogo();
- static void showWarning();
- static void setVolLimit();
-
-// BUTTON INPUT HANDLING
-private:
- static uint8_t heldStates[];
-public:
- static void initButtons();
- static void pollButtons();
- static uint8_t leftBtn();
- static uint8_t rightBtn();
- static uint8_t upBtn();
- static uint8_t downBtn();
- static uint8_t aBtn();
- static uint8_t bBtn();
- static uint8_t cBtn();
- static uint8_t leftHeld();
- static uint8_t rightHeld();
- static uint8_t upHeld();
- static uint8_t downHeld();
- static uint8_t aHeld();
- static uint8_t bHeld();
- static uint8_t cHeld();
-
- static uint8_t leftReleased();
- static uint8_t rightReleased();
- static uint8_t upReleased();
- static uint8_t downReleased();
- static uint8_t aReleased();
- static uint8_t bReleased();
- static uint8_t cReleased();
-
- // AUDIO RELATED
- static uint8_t ampIsOn();
- static void ampEnable(uint8_t);
- static uint8_t soundbyte;
-
- // GB RELATED
-public:
- static void readSettings();
- static void titleScreen(const char* name, const uint8_t *logo);
- static void titleScreen(const char* name);
- static void titleScreen(const uint8_t* logo);
- static void titleScreen();
- static bool update(bool useDirectMode=false);
- static uint32_t frameCount;
- static int8_t menu(const char* const* items, uint8_t length);
- static char* filemenu(char*);
- static char* filemenu();
- static void keyboard(char* text, uint8_t length);
- static void popup(const char* text, uint8_t duration);
- static void setFrameRate(uint8_t fps);
- static void pickRandomSeed();
-
- static uint8_t getCpuLoad();
- static uint16_t getFreeRam();
-
- static bool collidePointRect(int16_t x1, int16_t y1 ,int16_t x2 ,int16_t y2, int16_t w, int16_t h);
- static bool collideRectRect(int16_t x1, int16_t y1, int16_t w1, int16_t h1 ,int16_t x2 ,int16_t y2, int16_t w2, int16_t h2);
- static bool collideBitmapBitmap(int16_t x1, int16_t y1, const uint8_t* b1, int16_t x2, int16_t y2, const uint8_t* b2);
-
-private:
- static uint8_t timePerFrame;
- static uint32_t nextFrameMillis;
- static void updatePopup();
- static const char* popupText;
- static uint8_t popupTimeLeft;
- static void displayBattery();
- static uint16_t frameDurationMicros;
- static uint32_t frameStartMicros, frameEndMicros;
- static uint8_t startMenuTimer;
- static int updateLoader(uint32_t,uint32_t);
-public:
- static uint8_t volbar_visible;
- static void drawvolbar(int,int,int, bool);
- static void askLoader();
- static void jumpToLoader();
-};
-
-// this is the instance used by the system
-extern Core core;
-
-
-}
-
-#endif // POKITTOCORE_H
-
-
-