Hi, I have exactly the same problem as described in http://forum.micropython.org/viewtopic.php?f=11&t=2583.
Here is my main.py:
import machine
import urequests
from machine import Pin
def pincb(pin):
url = "(my test url)"
params = { "test": "true" }
urequests.urlopen(url, "GET", params)
p_out = Pin('GP2', mode=Pin.OUT)
p_out.value(1)
pin_int = Pin('GP1', mode=Pin.IN, pull=Pin.PULL_UP
pin_int.irq(trigger=Pin.IRQ_RISING, handler=pincb)
I know that the handler works perfectly, because I tested it with telnet and my website's access logs. But for some reason when I connect GP2 and GP1 the red light starts to blink rapidly for a couple of seconds. After that nothing happens when I connect the two pins until I restart the WiPy.
GPIO irq callback problem
- pythoncoder
- Posts: 4917
- Joined: Fri Jul 18, 2014 8:01 am
- Location: UK
- Contact:
Re: GPIO irq callback problem
Testing a function from the REPL doesn't prove it will work as an interrupt handler. I suggest you read http://docs.micropython.org/en/latest/e ... rules.html.
The way to proceed is to have the interrupt handler set a flag which is tested in a main loop which runs forever. When the flag is set the main loop calls your handler and clears it.
The way to proceed is to have the interrupt handler set a flag which is tested in a main loop which runs forever. When the flag is set the main loop calls your handler and clears it.
Peter Hinch