54 uint8_t NanoEngineInputs::s_zkeypadPin;
56 uint8_t NanoEngineInputs::zkeypadButtons()
58 int buttonValue = analogRead(s_zkeypadPin);
59 if (buttonValue < 100)
return BUTTON_RIGHT;
60 if (buttonValue < 200)
return BUTTON_UP;
61 if (buttonValue < 400)
return BUTTON_DOWN;
62 if (buttonValue < 600)
return BUTTON_LEFT;
63 if (buttonValue < 800)
return BUTTON_A;
70 NanoEngineInputs::s_zkeypadPin = analogPin;
74 uint8_t NanoEngineInputs::arduboyButtons()
78 #if defined(__AVR_ATmega32U4__) 80 buttons = (((~PINF) & 0B11110000)>>4);
82 buttons |= (((~PINE) & 0B01000000) >> 2);
84 buttons |= (((~PINB) & 0B00010000) << 1);
96 static const uint8_t ENGINE_DEFAULT_FPS = 30;
112 m_lastFrameTs = millis();
118 m_frameDurationMs = 1000/fps;
123 bool needUpdate = (uint32_t)(millis() - m_lastFrameTs) >= m_frameDurationMs;
124 if (needUpdate && m_loop) m_loop();
void(* TLoopCallback)(void)
static TLoopCallback m_loop
static void setFrameRate(uint8_t fps)
uint8_t(* TNanoEngineGetButtons)(void)
static uint32_t m_lastFrameTs
static uint8_t m_frameDurationMs