Forum: Mikrocontroller und Digitale Elektronik Frage zu ESP32 Geschwindigkeit


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Hans L. (holzwurm56)


Lesenswert?

Hallo,
ich bin ein ESP32 Neuling und wollte da ein paar Experimente machen.
Ich habe in der Arduino Ide DigitalWrite(10, HIGH);
                            DigitalWrite(10, LOW);
eingegeben und bekomme ein Rechtecksignal von ca 300kHz, wobei Low 
dreimal so lang ist wie High. Ich habe das Ganze dann in eine whlile 
Schleife gelegt
und komme auf ca 500kHz. Ich benutze ein ESP32_C3 Super Mini.
Weiß jemand ob es beim ESP32 auch Ports gibt? Beim Arduino Nano habe ich 
das auch mal probiert und mit z. B. PortB 0b00000001; war die 
Geschwindigkeit
um den Faktor 5 - 10 mal höher als bei digitalWrite;
Vielen Dank für jede Antwort
Hans

von Helmut -. (dc3yc)


Lesenswert?

Dann verwende vielleicht direkt die Espressif-API für GPIOs. Schau mal 
da: 
https://docs.espressif.com/projects/esp-idf/en/v4.2.2/esp32/api-reference/peripherals/gpio.html

von Monk (roehrmond)


Lesenswert?


von Rainer W. (rawi)


Lesenswert?

Hans L. schrieb:
> Ich habe in der Arduino Ide DigitalWrite(10, HIGH);
>                             DigitalWrite(10, LOW);
> eingegeben

Was ist das für eine Funktion?
In der Standardimplementation gibt es lediglich eine Funktion 
digitalWrite().
https://www.arduino.cc/reference/de/language/functions/digital-io/digitalwrite/

Du könntest alternativ digitalWriteFast() probieren, wo viel vom 
Overhead der Funktion digitalWrite() zur Geshwindigkeitsoptimierung 
ausgespart wurde.

von Yalu X. (yalu) (Moderator)


Lesenswert?

Rainer W. schrieb:
> Du könntest alternativ digitalWriteFast() probieren

Gibt es das auch für den ESP32-C3?

Die Fast-Funktionen sind ja keine Standardfunktionen in Arduino und
deswegen nicht auf allen Plattformen verfügbar. Ich kenne diese
Funktionen vom Teensy 4.0, wo man damit mit den I/O-Pins ein 150
MHz-Signal erzeugen kann, wenn ich das richtig in Erinnerung habe.

Für AVR-basierte Arduino-Boards kann man die digital*Fast-Funktionen
wohl als Library herunterladen.

Ich weiß aber nicht, ob sich schon jemand erbarmt hat, diese sinnvollen
Funktionen auch für ESP32, ARM, CH32 usw. zu schreiben.

von Conny G. (conny_g)


Lesenswert?

20 Sekunden Google
https://www.instructables.com/Faster-ESP32/

Ergibt 3-6 Mhz.

von Hans L. (holzwurm56)


Lesenswert?

Ich hatte den Beitrag auch gefunden, habe leider nichts davon 
verstanden.
Mein englisch ist schon schlecht, mein spanisch nicht vorhanden.
Aber ich hätte es wahrscheinlich sowieso nicht kapiert.

von Helmut -. (dc3yc)


Lesenswert?

Hans L. schrieb:
> Mein englisch ist schon schlecht, mein spanisch nicht vorhanden.

Wozu gibt es automatische Übersetzer? Naja, ein bisschen Ahnung von der 
Materie muss man dazu schon haben, um das zu verstehen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.