Geschwindigkeitsproblem UNO

Das _P und PSTR() lässt den Format-String im Flash, statt das RAM voll zumüllen. PSTR() ist dabei ein Makro, das mit PROGMEM einen Flash String deklariert und die _P Versionen der String Funktionen erwarten so einen String.

Du hast allerdings auch sonst so viele Strings im RAM, dass das hier keine Rolle spielt. :slight_smile:

Bei print() kannst du einfach das machen:

Serial.print(F("String im Flash"));
file.print(F("String im Flash"));

Spart sehr viel RAM.

Ich muss allerdings kein #include <avr/pgmspace.h> einfügen

Mhh, in der Arduino IDE anscheinend nicht. Ich programmiere in Visual Studio, da ist es nötig was ich so sehe. Etwas seltsam, aber na ja.

Zu meinen anderen Fragen : der Mega dürfte mit der gleichen Taktfrequenz nicht schneller sein, oder ?

Nein. Du musst dir nur abgewöhnen delay() zu verwenden und statt dessen mit millis() abfragen ob schon eine gewisse Zeit vergangen ist. delay() blockiert den Prozessor völlig für die Zeit.