Wii Nunchuk ohne Delay???

Hi, ich bin nun schon eine Weile auf der Suche nach einer Lib für den Wii Controler aber der OHNE Delay funktioniert. Der Delay wird verwendet um den Datenaustausch zu regeln (meist 10; 100ms ,empfangen, senden).
Leider kann ich noch nicht die Lib selber ändern, dazu fehlt mir noch viel Wissen. :frowning: :frowning: :frowning:

Ich brauche einen loop durchlauf ohne Pause!!!!
Vielleich kennt jemand eine Lib oder hat selber eine geschrieben und würde sie teilen :slight_smile: :slight_smile: :slight_smile:

Verwendet wir ein Nano, und UNO

MfG Marco

Ich sehe keinen Link zur verwendeten Lib. Nach 201 Posts sollte man aber eigentlich in der Lage sein, delayWithoutMillis nicht nur verstanden, sondern auch anwenden zu können.

Zumal du überhaupt mal sagen könntest was du vorhast, dann ist es einfach zu verstehen

Sorry, habe da wohl etwas vergessen, hier nun alle Angaben:
Die Lib ist diese: GitHub - GabrielBianconi/arduino-nunchuk: Improved Wii Nunchuk library for Arduino

void ArduinoNunchuk::_sendByte(byte data, byte location)
{
  Wire.beginTransmission(ADDRESS);

  Wire.write(location);
  Wire.write(data);

  Wire.endTransmission();

  delay(10);
}

, es geht um delay(10) in der letzten Zeile. Ich habe noch nie eine eigene Lib geschrieben oder geändert! Ich habe da noch sehr viele Fragen :slight_smile: :slight_smile: :slight_smile: :slight_smile:

Mein Projekt: eine Steuerung für meine Kameraschiene. Das ganze ist ein Nano, ein LCD(i2c), Encoder, 2 Pololu A4988 und Wii Nunchuk. Die Hardware funktioniert ohne Probleme. :slight_smile: :slight_smile:

Leider ist mein Problem, wenn ich den Stick nach links bewege, soll auch der Stepper sich nach links drehen. Das funktioniert! Leider wartet der Nunchuk 10ms und der Stepper auch, bevor er den Nächsten Schritt macht. ( verwende die AccelStepper Lib)

Ich würde gern das ganze ohne Delay machen.

MfG Marco

Ich glaub ja fast nicht das dich die 10ms so ausbremsen.
Du hast außerdem Nunchuk auch das LCD über I²C am laufen. wie verhält sich dein Code wenn du dieses mal weglässt? Zumal wenn im Nunchuk ein Delay verbaut ist, ist es im LCD Code bestimmt auch.

Ich habe noch nie eine eigene Lib geschrieben oder geändert! Ich habe da noch sehr viele Fragen

Dann wirds ja jetzt mal Zeit.....

Ich habe jetzt mal alle deaktiviert und einzeln wieder aktiviert. Die LCD lib hat keinen Einfluß oder nur einen sehr kleinen. Wenn Serial aktiviert wird läuft der Stepper langsam ( das wusste ich schon und hatte es schon deaktiviert) Wenn den Wii aktiviert wird, dann läuft er langsamer und ich kann die Geschwindigkeit nicht ändern. In der Lib habe ich den Wert mal auf 1 gändert und es ist besser geworden.
Er läuft aber nicht mit voller Geschwindigkeit. Den code habe ich mal angehängt.

MfG Marco

Slidersteuerung_V13___19_10_2015.ino (2.59 KB)

stepper_slider.ino (171 Bytes)

sschultewolter:
Nach 201 Posts sollte man aber eigentlich in der Lage sein, delayWithoutMillis nicht nur verstanden, sondern auch anwenden zu können.

delayWithoutMillis ist was er in Moment verwendet :wink:

Argh, immer den gleichen Gewohnheitsschreibfehler :wink: Ja, BlinkWithoutDelay oder was aus auch immer.

Du lädst ja noch anderen Kram, wird wohl eher daran hängen als an deinem Nunchuk

Hallo Marco,
WiiNunchuk habe ich von Dir das erste Mal gelesen, sind das die Teile, mit denen man vor einem Fernseher wild herumfuchtelt und beispielsweise Tennis usw. spielen kann?

Ich habe mir ArduinoNunchuk.cpp angesehen und das sieht für mich aus wie I2C mit etwas Bitgeschiebe. Ich habe einen Mega als I2C-Slave eingerichtet, der entspricht dem Nunchuk. Und ein UNO beherbergt Dein Programm. Derzeit liest der UNO vom Mega Daten und zeigt sie im seriellen Monitor an.

Wenn Dich das Thema noch interessiert, könnte ich den Test ausbauen. Einen Schrittmotor habe ich auch.

Danke @agmue für deine Hilfe. Ich werde jetzt erst mal mit der geringen Geschwindigkeit leben und für move stop move sollte es reichen. Leider sieht es bei mir mit der Zeit echt eng aus, saniere gerade mein Haus und gehe auch noch voll Zeit arbeiten( wie bei anderen auch :frowning: )

Ich habe mir nun auch die anderen Lib angesehen ( i2c, LCD, ...) und mir ist aufgefallen, das es nur so von delays wimmelt. Ist Delay nicht eine Erfindung vom "Teufel" :o ???
Wenn man es doch so einfach ersetzen kann, warum wird es nicht gleich in der Lib verwendet?? Das verstehe ich nicht. :confused: :confused: :confused: :confused:

MfG Marco

Delays sind schon ok....
So wie Brotmesser...

Wenn man es doch so einfach ersetzen kann, warum wird es nicht gleich in der Lib verwendet?? Das verstehe ich nicht.

So einfach ist nun auch nicht.

Will man es ersetzen, dann muss:

  1. Speicher für die Zeit reserviert werden. Speicher ist knapp.
  2. Der Programmteil regelmäßig, schnell genug, dran kommen. Das klappt auch nicht immer.

Außerdem ist dem Lib Entwickler nicht klar, was du möchtest.

Meine Idee ist, das delay() aus der Bibliothek ArduinoNunchuk.h zu verbannen, dafür aber nunchuk.update(); nicht bei jedem loop aufzurufen, wenn der Wii Controler ein Päuschen braucht.