Having an input-only pin is rare, save a string on other ports
This commit is contained in:
parent
4158ddfc17
commit
c46e219795
@ -99,4 +99,6 @@
|
|||||||
#define CIRCUITPY_PORT_NUM_SUPERVISOR_ALLOCATIONS (1)
|
#define CIRCUITPY_PORT_NUM_SUPERVISOR_ALLOCATIONS (1)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#define CIRCUITPY_DIGITALIO_HAVE_INPUT_ONLY (1)
|
||||||
|
|
||||||
#endif // MICROPY_INCLUDED_ESPRESSIF_MPCONFIGPORT_H
|
#endif // MICROPY_INCLUDED_ESPRESSIF_MPCONFIGPORT_H
|
||||||
|
@ -582,6 +582,10 @@ void supervisor_run_background_tasks_if_tick(void);
|
|||||||
#define MICROPY_WRAP_MP_EXECUTE_BYTECODE PLACE_IN_ITCM
|
#define MICROPY_WRAP_MP_EXECUTE_BYTECODE PLACE_IN_ITCM
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef CIRCUITPY_DIGITALIO_HAVE_INPUT_ONLY
|
||||||
|
#define CIRCUITPY_DIGITALIO_HAVE_INPUT_ONLY (0)
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef CIRCUITPY_DIGITALIO_HAVE_INVALID_PULL
|
#ifndef CIRCUITPY_DIGITALIO_HAVE_INVALID_PULL
|
||||||
#define CIRCUITPY_DIGITALIO_HAVE_INVALID_PULL (0)
|
#define CIRCUITPY_DIGITALIO_HAVE_INVALID_PULL (0)
|
||||||
#endif
|
#endif
|
||||||
|
@ -105,9 +105,13 @@ STATIC mp_obj_t adafruit_bus_device_spidevice_make_new(const mp_obj_type_t *type
|
|||||||
if (args[ARG_chip_select].u_obj != MP_OBJ_NULL) {
|
if (args[ARG_chip_select].u_obj != MP_OBJ_NULL) {
|
||||||
digitalinout_result_t result = common_hal_digitalio_digitalinout_switch_to_output(MP_OBJ_TO_PTR(args[ARG_chip_select].u_obj),
|
digitalinout_result_t result = common_hal_digitalio_digitalinout_switch_to_output(MP_OBJ_TO_PTR(args[ARG_chip_select].u_obj),
|
||||||
true, DRIVE_MODE_PUSH_PULL);
|
true, DRIVE_MODE_PUSH_PULL);
|
||||||
|
#if CIRCUITPY_DIGITALIO_HAVE_INPUT_ONLY
|
||||||
if (result == DIGITALINOUT_INPUT_ONLY) {
|
if (result == DIGITALINOUT_INPUT_ONLY) {
|
||||||
mp_raise_NotImplementedError(translate("Pin is input only"));
|
mp_raise_NotImplementedError(translate("Pin is input only"));
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
(void)result;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
return (mp_obj_t)self;
|
return (mp_obj_t)self;
|
||||||
|
@ -53,8 +53,10 @@ STATIC void check_result(digitalinout_result_t result) {
|
|||||||
return;
|
return;
|
||||||
case DIGITALINOUT_PIN_BUSY:
|
case DIGITALINOUT_PIN_BUSY:
|
||||||
mp_raise_ValueError_varg(translate("%q in use"), MP_QSTR_Pin);
|
mp_raise_ValueError_varg(translate("%q in use"), MP_QSTR_Pin);
|
||||||
|
#if CIRCUITPY_DIGITALIO_HAVE_INPUT_ONLY
|
||||||
case DIGITALINOUT_INPUT_ONLY:
|
case DIGITALINOUT_INPUT_ONLY:
|
||||||
mp_raise_ValueError_varg(translate("Invalid %q"), MP_QSTR_direction);
|
mp_raise_ValueError_varg(translate("Invalid %q"), MP_QSTR_direction);
|
||||||
|
#endif
|
||||||
#if CIRCUITPY_DIGITALIO_HAVE_INVALID_PULL
|
#if CIRCUITPY_DIGITALIO_HAVE_INVALID_PULL
|
||||||
case DIGITALINOUT_INVALID_PULL:
|
case DIGITALINOUT_INVALID_PULL:
|
||||||
mp_raise_ValueError_varg(translate("Invalid %q"), MP_QSTR_pull);
|
mp_raise_ValueError_varg(translate("Invalid %q"), MP_QSTR_pull);
|
||||||
|
@ -38,7 +38,9 @@ extern const mp_obj_type_t digitalio_digitalinout_type;
|
|||||||
typedef enum {
|
typedef enum {
|
||||||
DIGITALINOUT_OK,
|
DIGITALINOUT_OK,
|
||||||
DIGITALINOUT_PIN_BUSY,
|
DIGITALINOUT_PIN_BUSY,
|
||||||
|
#if CIRCUITPY_DIGITALIO_HAVE_INPUT_ONLY
|
||||||
DIGITALINOUT_INPUT_ONLY,
|
DIGITALINOUT_INPUT_ONLY,
|
||||||
|
#endif
|
||||||
#if CIRCUITPY_DIGITALIO_HAVE_INVALID_PULL
|
#if CIRCUITPY_DIGITALIO_HAVE_INVALID_PULL
|
||||||
DIGITALINOUT_INVALID_PULL,
|
DIGITALINOUT_INVALID_PULL,
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user