summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ports/stm32/mphalport.h8
-rw-r--r--ports/stm32/mpnetworkport.c5
-rw-r--r--ports/stm32/pendsv.h3
3 files changed, 16 insertions, 0 deletions
diff --git a/ports/stm32/mphalport.h b/ports/stm32/mphalport.h
index 47bb1f8c8..8028782a9 100644
--- a/ports/stm32/mphalport.h
+++ b/ports/stm32/mphalport.h
@@ -96,11 +96,19 @@ static inline mp_uint_t mp_hal_ticks_cpu(void) {
#define mp_hal_pin_od_high(p) mp_hal_pin_high(p)
#define mp_hal_pin_read(p) (((p)->gpio->IDR >> (p)->pin) & 1)
#define mp_hal_pin_write(p, v) ((v) ? mp_hal_pin_high(p) : mp_hal_pin_low(p))
+#define mp_hal_pin_interrupt(pin, handler, trigger, hard) extint_register_pin(pin, trigger, hard, handler)
+
+enum mp_hal_pin_interrupt_trigger {
+ MP_HAL_PIN_TRIGGER_NONE,
+ MP_HAL_PIN_TRIGGER_FALL = GPIO_MODE_IT_FALLING,
+ MP_HAL_PIN_TRIGGER_RISE = GPIO_MODE_IT_RISING,
+};
void mp_hal_gpio_clock_enable(GPIO_TypeDef *gpio);
void mp_hal_pin_config(mp_hal_pin_obj_t pin, uint32_t mode, uint32_t pull, uint32_t alt);
bool mp_hal_pin_config_alt(mp_hal_pin_obj_t pin, uint32_t mode, uint32_t pull, uint8_t fn, uint8_t unit);
void mp_hal_pin_config_speed(mp_hal_pin_obj_t pin_obj, uint32_t speed);
+void extint_register_pin(const pin_obj_t *pin, uint32_t mode, bool hard_irq, mp_obj_t callback_obj);
enum {
MP_HAL_MAC_WLAN0 = 0,
diff --git a/ports/stm32/mpnetworkport.c b/ports/stm32/mpnetworkport.c
index 2f49328e1..1ce758e7d 100644
--- a/ports/stm32/mpnetworkport.c
+++ b/ports/stm32/mpnetworkport.c
@@ -50,6 +50,11 @@
#if MICROPY_PY_NETWORK_WIZNET5K
void wiznet5k_poll(void);
+void wiznet5k_deinit(void);
+
+void wiznet5k_try_poll(void) {
+ pendsv_schedule_dispatch(PENDSV_DISPATCH_WIZNET, wiznet5k_poll);
+}
#endif
u32_t sys_now(void) {
diff --git a/ports/stm32/pendsv.h b/ports/stm32/pendsv.h
index 0733d355d..f97581e99 100644
--- a/ports/stm32/pendsv.h
+++ b/ports/stm32/pendsv.h
@@ -35,6 +35,9 @@ enum {
#if MICROPY_PY_NETWORK_CYW43
PENDSV_DISPATCH_CYW43,
#endif
+ #if MICROPY_PY_NETWORK_WIZNET5K
+ PENDSV_DISPATCH_WIZNET,
+ #endif
#endif
#if MICROPY_PY_BLUETOOTH && !MICROPY_PY_BLUETOOTH_USE_SYNC_EVENTS
PENDSV_DISPATCH_BLUETOOTH_HCI,