Pages: [1]   Go Down
Author Topic: Tasterabfrage reagiert verzögert  (Read 747 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo an alle, ich hab ein kleines Problem mit meinem Sketch und komme allein einfach nicht auf die Lösung.

Mein Sketch arbeitet acht Temperaturabfragen ab und hat insgesamt ein delay von 80ms (10ms pro Messung). Nun ist aber auch ein Menü enthalten (MenuBackend.h Lib) um Peak Wert einzustellen die für Warnungen gedacht sind. Es werden vier LCD´s angesteuert. Das Problem ist jetzt, dass wenn ich eine Menütaste tippe, der Sketch gut eine halbe Sekunde bis Sekunde braucht bis darauf reagiert wird. Dies ist unglücklich da man so zusagen die Tasten gedrückt halten muss, macht man´s zu kurz passiert nichts, drückt man zu lang kann´s sein, dass man die debounce Zeit schon überschreitet und man zwei Menü ebenen auf einmal durchschaltet. Ich möchte es aber so haben, dass man wirklich nur kurz tippen muss um weiter im Menü zu wählen.
Mein Gedanke war zwischen denn Messungen jeweils Taster abfragen zuerstellen oder gibt es eine andere Möglichkeit?

Board: Mega1280
Schon einmal vielen Dank im Voraus  smiley
Logged

Offline Offline
Jr. Member
**
Karma: 1
Posts: 61
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Also wenn ich das Richtig verstanden habe funktioniert dein sketch in etwa so:
temp1 = A1;
delay(10);
Temp2 = A2;
delay(10);
und so weiter und dann kommt irgendwann deine Button abfrage richtig??

diese ganzen delays stoppen deinen Arduino und der kann dan nicht mehr reagieren versuche es doch mal mit dem beispiel Blink ohne delay
und für den button nutzt du Interrupts

ich hoffe ich konnte dir helfen
Logged

Mit freundlichem Gruß melmann

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 258
Posts: 21492
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ohne Deinen Sketch können wir nur im dunkeln fischen oder die glücklichen die eine Kristallkugel haben könnten diese zu Rate ziehen.
Bitte gib uns Deinen Sketch.
Müßte mal eine Umfrage mache wer alles eine Kristallkugel hat ... smiley-wink smiley-wink smiley-wink smiley-wink

Grüße Uwe
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Danke für eure Hilfe.

Ja, so in etwa. Jede Abfrage macht 2ms Pause und wiederholt dies fünf mal und teilt den Endwert durch fünf damit die Temperaturwerte nicht zu sehr schwancken.
Ich habs einmal ohne delay versucht einfach weg gelassen, selbst dann war er enorm verzögert.

Ich werd den Sketch morgen mit hochladen momentan ist der noch so unordentlich das man den kaum durchschauen kann.

Meine frage war mehr ob´s eine Möglichkeit gibt zwischen den Messungen immer wieder die gleiche Abfrage fürs Menü zu erstellen, hatte irgendwo mal sowas gesehen aber kann mich nicht mehr erinnern wo.

« Last Edit: October 21, 2012, 03:22:54 pm by Osten » Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 258
Posts: 21492
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Du kannst die Abfrage der Tastatur in eine Funktion packen und wiederholt aufrufen. Du mußt dann aber das Programm aich ändern da bei einer Tastaturbetätigung unter Umständen auch etwas anderes gemacht werden muß.
Ich bitte immernoch un den Setch  smiley-wink Danke 
Grüße Uwe
Logged

im Neckartal
Offline Offline
Jr. Member
**
Karma: 0
Posts: 60
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hi,

unabhängig von deinem Zeitverzögerungsproblem, finde ich dieses Vorgehen:
Quote
jede Abfrage macht 2ms Pause und wiederholt dies fünf mal und teilt den Endwert durch fünf damit die Temperaturwerte nicht zu sehr schwancken
als bischen "suboptimal".
Mal folgendes angenommen:

du mißt 5 x den Wert "10" -> 10 + 10 + 10 + 10 + 10 = 50 / 5 = 10
o.k. Mittelwert ist i.O.

nun mißt du (durch Schwankungen) 3 x den Wert "10" und 2 x den Wert "9"
dann hast du  -> 10 + 10 + 10 + 9 + 9 = 48 / 5 = 9,6
auch o.k

nun hast du aber bei einer (oder mehreren) Messung (durch irgendwelche Störungen) richtig "Schrott" dabei, z.B.:
10 + 10 + 1 + 10 + 1 = 32/5 = 6,4
ist das dann auch noch ein vernünftiger Mittelwert ?!?

IMHO müßte man da doch Meßwerte die zu weit von der "Norm" abweichen verwerfen und den Teiler entsprechend anpassen.

Grüßle Bernd
Logged

Theoretisch gibt es keinen Unterschied zwischen Theorie und Praxis ...

Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Wie sollen den solche Fehler auftretten? Aber eigentlich ist es genau das was ich auch will, da manche Werte ziemlich ordentlich schwanken dürfen damit die Anzeige aber nicht springt, gibt´s die fünf Messungen. Das klappt bisher alles recht gut ich häng nur am Menü fest...

Ich kann den sketch irgendwie nicht hochladen er ist zu groß für diese Funktion.
Logged

Forum Moderator
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 258
Posts: 21492
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Wie zu groß? Ist Dein Sketch größer als 4MByte?
Grüße Uwe
Logged

Pages: [1]   Go Up
Jump to: