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
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
Schau in den Quelltext von digitalWrite() https://github.com/espressif/arduino-esp32/blob/1e04762e3ad316b53618987d2815256c65fb67f8/cores/esp32/esp32-hal-gpio.c#L174
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.
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.