PicoDisplay: Use pins for buttons.

Swap the button constants to use pins, just in case someone tries to use these with Button() or PicoZero.
feature/merged-st7789
Phil Howard 2022-05-12 12:43:58 +01:00
rodzic 813b7a401a
commit 1315af4e41
6 zmienionych plików z 22 dodań i 84 usunięć

Wyświetl plik

@ -11,7 +11,7 @@ namespace pimoroni {
static const int HEIGHT = 135; static const int HEIGHT = 135;
static const int PORTRAIT_WIDTH = 135; static const int PORTRAIT_WIDTH = 135;
static const int PORTRAIT_HEIGHT = 240; static const int PORTRAIT_HEIGHT = 240;
static const uint8_t A = 12; static const uint8_t A = 12;
static const uint8_t B = 13; static const uint8_t B = 13;
static const uint8_t X = 14; static const uint8_t X = 14;
static const uint8_t Y = 15; static const uint8_t Y = 15;

Wyświetl plik

@ -11,7 +11,7 @@ namespace pimoroni {
static const int HEIGHT = 240; static const int HEIGHT = 240;
static const int PORTRAIT_WIDTH = 240; static const int PORTRAIT_WIDTH = 240;
static const int PORTRAIT_HEIGHT = 320; static const int PORTRAIT_HEIGHT = 320;
static const uint8_t A = 12; static const uint8_t A = 12;
static const uint8_t B = 13; static const uint8_t B = 13;
static const uint8_t X = 14; static const uint8_t X = 14;
static const uint8_t Y = 15; static const uint8_t Y = 15;

Wyświetl plik

@ -1,14 +1,5 @@
#include "pico_display.h" #include "pico_display.h"
/***** Constants *****/
enum buttons
{
BUTTON_A = 0,
BUTTON_B,
BUTTON_X,
BUTTON_Y,
};
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
// picodisplay Module // picodisplay Module
@ -61,10 +52,13 @@ STATIC const mp_map_elem_t picodisplay_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR_circle), MP_ROM_PTR(&picodisplay_circle_obj) }, { MP_ROM_QSTR(MP_QSTR_circle), MP_ROM_PTR(&picodisplay_circle_obj) },
{ MP_ROM_QSTR(MP_QSTR_character), MP_ROM_PTR(&picodisplay_character_obj) }, { MP_ROM_QSTR(MP_QSTR_character), MP_ROM_PTR(&picodisplay_character_obj) },
{ MP_ROM_QSTR(MP_QSTR_text), MP_ROM_PTR(&picodisplay_text_obj) }, { MP_ROM_QSTR(MP_QSTR_text), MP_ROM_PTR(&picodisplay_text_obj) },
{ MP_ROM_QSTR(MP_QSTR_BUTTON_A), MP_ROM_INT(BUTTON_A) }, { MP_ROM_QSTR(MP_QSTR_BUTTON_A), MP_ROM_INT(12) },
{ MP_ROM_QSTR(MP_QSTR_BUTTON_B), MP_ROM_INT(BUTTON_B) }, { MP_ROM_QSTR(MP_QSTR_BUTTON_B), MP_ROM_INT(13) },
{ MP_ROM_QSTR(MP_QSTR_BUTTON_X), MP_ROM_INT(BUTTON_X) }, { MP_ROM_QSTR(MP_QSTR_BUTTON_X), MP_ROM_INT(14) },
{ MP_ROM_QSTR(MP_QSTR_BUTTON_Y), MP_ROM_INT(BUTTON_Y) }, { MP_ROM_QSTR(MP_QSTR_BUTTON_Y), MP_ROM_INT(15) },
{ MP_ROM_QSTR(MP_QSTR_LED_R), MP_ROM_INT(6) },
{ MP_ROM_QSTR(MP_QSTR_LED_G), MP_ROM_INT(7) },
{ MP_ROM_QSTR(MP_QSTR_LED_B), MP_ROM_INT(8) },
}; };
STATIC MP_DEFINE_CONST_DICT(mp_module_picodisplay_globals, picodisplay_globals_table); STATIC MP_DEFINE_CONST_DICT(mp_module_picodisplay_globals, picodisplay_globals_table);

Wyświetl plik

@ -96,36 +96,11 @@ mp_obj_t picodisplay_set_led(mp_obj_t r_obj, mp_obj_t g_obj, mp_obj_t b_obj) {
} }
mp_obj_t picodisplay_is_pressed(mp_obj_t button_obj) { mp_obj_t picodisplay_is_pressed(mp_obj_t button_obj) {
bool buttonPressed = false;
if(display != nullptr) { if(display != nullptr) {
int buttonID = mp_obj_get_int(button_obj); return display->is_pressed(mp_obj_get_int(button_obj)) ? mp_const_true : mp_const_false;
switch(buttonID) {
case 0:
buttonPressed = display->is_pressed(PicoDisplay::A);
break;
case 1:
buttonPressed = display->is_pressed(PicoDisplay::B);
break;
case 2:
buttonPressed = display->is_pressed(PicoDisplay::X);
break;
case 3:
buttonPressed = display->is_pressed(PicoDisplay::Y);
break;
default:
mp_raise_ValueError("button not valid. Expected 0 to 3");
break;
}
} }
else mp_raise_msg(&mp_type_RuntimeError, NOT_INITIALISED_MSG);
mp_raise_msg(&mp_type_RuntimeError, NOT_INITIALISED_MSG); return mp_const_none;
return buttonPressed ? mp_const_true : mp_const_false;
} }
mp_obj_t picodisplay_set_pen(mp_uint_t n_args, const mp_obj_t *args) { mp_obj_t picodisplay_set_pen(mp_uint_t n_args, const mp_obj_t *args) {

Wyświetl plik

@ -1,14 +1,5 @@
#include "pico_display_2.h" #include "pico_display_2.h"
/***** Constants *****/
enum buttons
{
BUTTON_A = 0,
BUTTON_B,
BUTTON_X,
BUTTON_Y,
};
//////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////
// picodisplay2 Module // picodisplay2 Module
@ -61,10 +52,13 @@ STATIC const mp_map_elem_t picodisplay2_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR_circle), MP_ROM_PTR(&picodisplay2_circle_obj) }, { MP_ROM_QSTR(MP_QSTR_circle), MP_ROM_PTR(&picodisplay2_circle_obj) },
{ MP_ROM_QSTR(MP_QSTR_character), MP_ROM_PTR(&picodisplay2_character_obj) }, { MP_ROM_QSTR(MP_QSTR_character), MP_ROM_PTR(&picodisplay2_character_obj) },
{ MP_ROM_QSTR(MP_QSTR_text), MP_ROM_PTR(&picodisplay2_text_obj) }, { MP_ROM_QSTR(MP_QSTR_text), MP_ROM_PTR(&picodisplay2_text_obj) },
{ MP_ROM_QSTR(MP_QSTR_BUTTON_A), MP_ROM_INT(BUTTON_A) }, { MP_ROM_QSTR(MP_QSTR_BUTTON_A), MP_ROM_INT(12) },
{ MP_ROM_QSTR(MP_QSTR_BUTTON_B), MP_ROM_INT(BUTTON_B) }, { MP_ROM_QSTR(MP_QSTR_BUTTON_B), MP_ROM_INT(13) },
{ MP_ROM_QSTR(MP_QSTR_BUTTON_X), MP_ROM_INT(BUTTON_X) }, { MP_ROM_QSTR(MP_QSTR_BUTTON_X), MP_ROM_INT(14) },
{ MP_ROM_QSTR(MP_QSTR_BUTTON_Y), MP_ROM_INT(BUTTON_Y) }, { MP_ROM_QSTR(MP_QSTR_BUTTON_Y), MP_ROM_INT(15) },
{ MP_ROM_QSTR(MP_QSTR_LED_R), MP_ROM_INT(6) },
{ MP_ROM_QSTR(MP_QSTR_LED_G), MP_ROM_INT(7) },
{ MP_ROM_QSTR(MP_QSTR_LED_B), MP_ROM_INT(8) },
}; };
STATIC MP_DEFINE_CONST_DICT(mp_module_picodisplay2_globals, picodisplay2_globals_table); STATIC MP_DEFINE_CONST_DICT(mp_module_picodisplay2_globals, picodisplay2_globals_table);

Wyświetl plik

@ -96,36 +96,11 @@ mp_obj_t picodisplay2_set_led(mp_obj_t r_obj, mp_obj_t g_obj, mp_obj_t b_obj) {
} }
mp_obj_t picodisplay2_is_pressed(mp_obj_t button_obj) { mp_obj_t picodisplay2_is_pressed(mp_obj_t button_obj) {
bool buttonPressed = false;
if(display2 != nullptr) { if(display2 != nullptr) {
int buttonID = mp_obj_get_int(button_obj); return display2->is_pressed(mp_obj_get_int(button_obj)) ? mp_const_true : mp_const_false;
switch(buttonID) {
case 0:
buttonPressed = display2->is_pressed(PicoDisplay2::A);
break;
case 1:
buttonPressed = display2->is_pressed(PicoDisplay2::B);
break;
case 2:
buttonPressed = display2->is_pressed(PicoDisplay2::X);
break;
case 3:
buttonPressed = display2->is_pressed(PicoDisplay2::Y);
break;
default:
mp_raise_ValueError("button not valid. Expected 0 to 3");
break;
}
} }
else mp_raise_msg(&mp_type_RuntimeError, NOT_INITIALISED_MSG);
mp_raise_msg(&mp_type_RuntimeError, NOT_INITIALISED_MSG); return mp_const_none;
return buttonPressed ? mp_const_true : mp_const_false;
} }
mp_obj_t picodisplay2_set_pen(mp_uint_t n_args, const mp_obj_t *args) { mp_obj_t picodisplay2_set_pen(mp_uint_t n_args, const mp_obj_t *args) {