too few arguments to function 'void shiftOut(uint8_t, uint8_t, uint8_t, uint8_t)'
Kann momentan hier noch nichts mit anfangen (zu wenig Kenntnis)
Bekomme die error auf Zeile 271 in diesen Script von meine Treppenbeleuchtung, mit Google komm ich nicht weiter (weiß einfach nicht was es bedeutet)
Möchte es gerne selbst lösen, brauche nur Tipps wo ich suchen muss oder was es bedeutet (etwas mit 8bits?)
Du übergibts dem Funktionsaufruf shiftOut nur ein Argument. Nämlich den Rückgabewert der Funktion random(...).
Laut Fehlermeldung erwartet die Funktion shiftOut jedoch 4 Parameter. Schau dir nochmal die Funktion shiftOut an was die macht und was für Werte sie haben möchte.
Um den Fehler zu erhalten, braucht man nur einen Sketch mit einer Handvoll Zeilen.
Den könntest du mit vorhandenen Beispielen zu shiftOut vergleichen und den Unterschied erkennen.
Ein Tip: uint8_t ist ein Datentyp, der auch andere Namen haben kann.
Möchte es gerne selbst lösen, brauche nur Tipps wo ich suchen muss oder was es bedeutet (etwas mit 8bits?)
MicroBahner: shiftOut ist eine vordefinierte Funktion in der Arduino IDE.
Du verwendest in deinem Sketch eine eigene Funktion mit dem gleichen Namen. Das führt zu Konflikten.
Benenne deine eigene Funktion um.
Nein!
Funktionen überladen ist kein Problem, solange sie sich in der Parametersignatur unterscheiden.
Sie wird nur nicht gefunden, weil sie am Ende der Datei steht, und Arduino daran versagt automatisch einen Prototypen zu erstellen.
void shiftOut(byte dataOut); // <<<<--- dieses Einfuegen
Habe gemerkt dass ich besser alle "Funktionen" vor der "void setup () und void loop()" setzen kann dann hab ich auf jeden Fall keine Problemen mehr mit kompilieren
Man muss die Funktion bekannt machen bevor sie verwendet wird. Wenn du eine Funktion nur in einer anderen Funktion (und nicht in loop()) verwendest hast du das gleiche Probleme.
i.d.R. schafft es die IDE die Prototypen automatisch zu erstellen. Aber es gibt ein paar Ausnahmen. Dann reicht es wie gesagt den Prototyp oben hinzuschreiben. Die eigentliche Funktion kann weiterhin unten stehen
Hab alles wieder hinten die "void setup () und void loop()" und habe einen Fehler gefunden es fehlte eine klammer "}" als abschließe in die "loop".
Ich kann jetzt auch normal kompilieren nur der ESP8266Webserver ist sehr träge geworden.
Habe keinen ESP, aber einen kleinen Tip für Dich:
Sichere Dir Deine Sketche ab und zu, gerade, bevor Du größere Änderungen machst.
Selber kopiere ich mir die .ino-Datei erneut in den Ordner (bzw. dupliziere Diese) und benenne das File in .INA um. (da alle .ino Files beim Kompilieren verarbeitet werden und dann sämtliche Doppeldefinitionen Fehler verursachen)
So kannst Du zumindest auf einen früheren Stand zurück, wenn Mal Alles kaputt repariert wurde
Du machst alle Aktionen in jedem Loopdurchlauf immer wieder. Muss das so sein?
Oder kannst Du manche Sachen auch nur alle Sekunden/10 Sekunden machen?
Damit könntest Du Deinen Loop entlasten und der hätte mehr Zeit für die Bedienung des Webbrowsers.
Also Zeitsteuerung mit millis() könnte helfen.
Die Delays im Loop und den darin aufgerufenen Funktionen tragen auch nicht zur Beschleunigung bei.
Whiles im Loop blockieren auch den Ablauf.
Habe keinen ESP, aber einen kleinen Tip für Dich:
Sichere Dir Deine Sketche ab und zu, gerade, bevor Du größere Änderungen machst.
Selber kopiere ich mir die .ino-Datei erneut in den Ordner (bzw. dupliziere Diese) und benenne das File in .INA um. (da alle .ino Files beim Kompilieren verarbeitet werden und dann sämtliche Doppeldefinitionen Fehler verursachen)
So kannst Du zumindest auf einen früheren Stand zurück, wenn Mal Alles kaputt repariert wurde
MfG
Dank für diesen Tipp,
Ich versuche es jedes mal aber dann Pass ich wieder nicht auf und habe schon wieder auf Speichern gedrückt.