Go Down

Topic: Drehimpulsgeber auslesen funktioniert nicht (Read 353 times) previous topic - next topic

combie

#15
Nov 03, 2020, 03:21 pm Last Edit: Nov 03, 2020, 04:30 pm by combie
Man könnte auch den Ball flach halten und stattdessen konstruktiv an einer Lösung zum Thema beitragen.
Einmal lasse ich das durchgehen...
Zwecks "Anstand lernen", oder so.

Aber bei Wiederholungen gilt:

Ich halte Corsspostings für das egomanische und rücksichtslose ausnutzen der Hilfsbereitschaft der Firmenmitglieder.

Quote
Ich will Hilfe!
Es ist mir scheizegal, wie viele dafür los rennen.
Je mehr mir kostenlos zu Diensten sind, um so besser.
Auch wenn dabei 20 mal das gleiche rauskommt.
ICH ICH ICH
Erfahrungsgemäß sind chronische Crossposter mit die letzten, welche die Bereitschaft zeigen anderen helfen zu wollen.
Also recht das Gegenteil, der Leute, welche man sich in einem technischen Forum wünscht.



Aus einem anderen Forum:
Quote
Anscheinend hast du deine Frage auch in einem anderen Forum gestellt. Das empfinden viele Helfer als unfair, da sie oft unnötig Lösungsansätze posten, die bereits im anderen Forum gepostet wurden. Im Sinne der Forenregeln werden entsprechende Threads deshalb mit einem Hinweis versehen und im Wiederholungsfall geschlossen.

Bitte betrachte diese Vorgehensweise nicht als Schikane, sondern als Mittel, den kostenlosen Einsatz der Helfer vor Missbrauch zu schützen.
Ich bin also längst nicht alleine mit der Ansicht.
Gefährlich, was Theorien aus Menschen machen können.
Schlimmer, was Menschen aus Theorien machen.

HotSystems

Ich halte Corsspostings für das egomanische und rücksichtslose ausnutzen der Hilfsbereitschaft der Firmenmitglieder.
Du wolltest sicher Forenmitglieder schreiben.
Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. 8)

combie

Gefährlich, was Theorien aus Menschen machen können.
Schlimmer, was Menschen aus Theorien machen.

Franz54

#18
Nov 04, 2020, 12:01 am Last Edit: Nov 04, 2020, 12:15 am by Franz54
Die Displayausgabe machst du in jedem Durchgang völlig neu und völlig unnötig. Ich denke das braucht sehr viel Zeit, und wenn du in der dieser Zeit an deinem Rädchen drehst kriegt dein Programm das meistens nicht mit, weil die CPU immer und immer wieder mit dem Display beschäftigt ist. Die Ausgabe am Display darf nur angestoßen werden, wenn es was zu VERÄNDERN gibt im Display. Also immer vor dem Display Teil mit einer "if Abfrage" testen, ob sich ein Wert (solltemp, isttemp) der da angezeigt werden soll, verändert hat. Wenn nicht das Display überspringen. Dann wirs du sehen, dass dein Rotarygeber auch abgefragt werden kann.
Dieser ganze Teil hier wird bei dir völlig nutzlos alle paar Millisekunden für rel. lange Zeit neu aufgebaut, in der Zeit hat das Programm für die anderen Dinge keine Zeit. Kann also auch den Programmteil für den Rotarygeber nicht bedienen.

Nicht nur delay() bremsen das ganze Programm aus, sondern auch display.print() und Serial.print() gedönse.

Code: [Select]

//DISPLAY
 display.clearDisplay();
 display.setTextSize(1);
 display.setTextColor(WHITE);
  display.setCursor(0, 10);
display.println("Soll Temperatur: ");
  display.print(solltemp);
 display.println(" Grad");
 display.display();
 
 display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(0, 40);
   display.println("Ist Temperatur: ");
  display.print(isttemp);
  display.println(" Grad");
  display.display();

StefanL38

Sofern man die beiden interrupts an IO-pin 2 und 3 nicht für andere Zwecke braucht würde ich die interrupt-basierte Auswertun nehmen. Eine interrupt-basierte Dreh-Encoder-Auswertung wird auch bei ständiger Auslastung des Prozessors mit egal was funktionieren.
Es ist natürlich trotzdem besserer Programmierstil wenn man Display-Updates nur dann ausführt wenn sich wirklich etwas geändert hat.

viele Grüße Stefan
any newbee can apply the most professional habit right from the start:
 add only ONE thing at a time. Debug that ONE thing until that ONE thing works reliable - repeat.
Newbee: become a professional by following this rule.

Franz54

Ja, für jeden Pfurtz Interruppte bemühen ist ja auch nicht sooo toll. Einfach ein bischen denken beim Schreiben reicht vollkommen.

combie

Zudem wirds mit Interrupts ja auch nicht funktionieren, da die Dallas Lib diese sperrt.
Gefährlich, was Theorien aus Menschen machen können.
Schlimmer, was Menschen aus Theorien machen.

Go Up