kopia lustrzana https://github.com/pimoroni/pimoroni-pico
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
rodzic
813b7a401a
commit
1315af4e41
|
@ -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;
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
@ -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) {
|
||||||
|
|
Ładowanie…
Reference in New Issue