Liste des Groupes | Revenir à se design |
On Sun, 17 Nov 2024 09:33:54 -0800, john larkin <JL@gct.com> wrote:
>On Sun, 17 Nov 2024 14:50:58 -0000 (UTC), antispam@fricas.org (Waldek>
Hebisch) wrote:
>USB can do milliseconds, ethernet hundreds of microseconds, small>
micros can do much better. Theoretically with a micro connected via USB
one can synchronize clocks of the micro and PC with microsecond
accuracy, I plan to try this but do not know how this will work.
We're designing some products around the RP2040, the Pi Pico
processor.
>
Turns out that in some cases, it's easier to bit-bang an SPI interface
than program an SPI engine. To fine-tune timings in 7 ns increments,
we can use no-op instructions.
>
I wonder what's a safe c-language NOP single-clock operation that no
compiler is smart enough to optimize out and doesn't add a bunch of
loads and stores.
>
We're experimenting with that sort of timing on an oscilloscope. The
GCC or whatever code timing tools don't work in this case.
>
Something like
>
gpio_put(FIRST_GPIO, 1);
gpio_put(FIRST_GPIO, 0);
gpio_put(FIRST_GPIO, 1);
gpio_put(FIRST_GPIO, 0);
>
Makes the port pin change every 7 ns. That's astounding. So maybe a
dummy port bang is my no-op. Just repeat what we just set it to.
>
Code in assembly. It's trivial to use assembly code with c in gcc.
Les messages affichés proviennent d'usenet.