john larkin <
jl@650pot.com> wrote:
On 8 Feb 2024 08:10:20 GMT, "Peter Heitzer" ><peter.heitzer@rz.uni-regensburg.de> wrote:
john larkin <jl@650pot.com> wrote:
Has anyone measured how fast a pico can do things running Python?
Like, to start, wiggling a port pin as fast as possible?
I think the micro Python is an interpreter.
Yes, Python is interpreted.
I found https://wellys.com/posts/board-language_speed/
I think the performance of Micropython and Circuitpython should be
almost equal.
The nice thing is that you can test your code interactively in the
Python interpreter.
Cool. We just did a MicroPython loop to raise and lower a port pin 4
times, brute force inline code, as fast as we could. One up/down cycle
takes about 14 microseconds on a Pico, with some jitter.
We'll repeat it in c. I'm guessing that will be 20x faster.
I did a quick test yesterday evening using this few lines of code:
from machine import Pin
led=Pin(0,Pin.OUT)
switch=Pin(1,Pin.IN,Pin.PULL_UP)
while switch.value(): led.toggle()
GPIO0 was an output driving a LED. On GPIO1 I connected a momentary switch
to ground. On the output pin I got about 41 kHz until the switch was
pressed. With an endless loop:
while True: led.toggle()
I got 83 kHz.
I used Micropython v. 1.20; the Pico run at 125 MHz.
I also noticed some jitter. Normally one would not create a rectangle signal this way but use a PWM channel for that task.
--
Dipl.-Inform(FH) Peter Heitzer,
peter.heitzer@rz.uni-regensburg.de
--- SoupGate-Win32 v1.05
* Origin: Agency HUB, Dunedin - New Zealand | Fido<>Usenet Gateway (3:770/3)