www.mikrocontroller.net

Forum: Compiler & IDEs Polling: for(;(1<<OK_TASTE);); //Warte solange bis OK Taste gedrückt wird.


Autor: Andy S. (andy11)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
#define OK_TASTE PB5
for(;(1<<OK_TASTE);); //Warte solange bis OK Taste gedrückt wird.

geht das so?

lg andy

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vermutlich nicht, denn alles was du bist jetzt geschrieben hast sind 
konstanten da ist nichts dabei was sich ändern kann.

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
evtl.:
   for(;(PINB&(1<<OK_TASTE)););
oder gleich:
   while( PINB&(1<<OK_TASTE) );
oder noch besser:
   while( PINB&(1<<OK_TASTE) )
   {
   }

Autor: Andy S. (andy11)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>vermutlich nicht, denn alles was du bist jetzt geschrieben hast sind
>konstanten da ist nichts dabei was sich ändern kann.

Klaus Wachtler schrieb:
> evtl.:
>    for(;(PINB&(1<<OK_TASTE)););
> oder gleich:
>    while( PINB&(1<<OK_TASTE) );

stimmt stimmt stimmt.

Danke

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klaus Wachtler schrieb:
> while( PINB&(1<<OK_TASTE) );

Da mußt Du nicht mal drücken.

Es reicht, wenn Du vom Stuhl aufstehst oder über den Teppich läufst und 
dann den Finger in die Nähe hältst.
Die CPU ist schnell genug, den Entladepuls als Drücken zu erkennen.
Oder Du machst in der Nähe nen Staubsauger an.

Ich nehm daher immer ne Entprellroutine.


Peter

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es gibt auch Leute, die einen C spendieren.
Du weisst, doch, ich liebe C.

Autor: Andy S. (andy11)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter Dannegger schrieb:
> Es reicht, wenn Du vom Stuhl aufstehst oder über den Teppich läufst und
> dann den Finger in die Nähe hältst.
> Die CPU ist schnell genug, den Entladepuls als Drücken zu erkennen.
> Oder Du machst in der Nähe nen Staubsauger an.

Meinst du das ernst oder soll das ein witz sein?

lg andy

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zumindest bei Entprellung macht er (glaube ich) keine Witze :-)

Autor: Andy S. (andy11)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klaus Wachtler schrieb:
> Zumindest bei Entprellung macht er (glaube ich) keine Witze :-)
da bin ich aber beruhight,
dann schaut das für mich mal gut aus:
for(;(!(EINGABE_TASTEN & (1<<OK_TASTE)));)//Warte solange bis OK Taste gedrückt wird.
  {
    _delay_ms(500);
    lcd_setcursor(0, 4);
    lcd_string("....OK..drücken.....");

    _delay_ms(500);
    lcd_setcursor(0, 4);
    lcd_string("####OK##drücken#####");
  }


lg andy

Autor: Klaus Wachtler (mfgkw)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ist das jetzt dein Ernst?
Das Ding wartet ja eine glatte Sekunde.
Wenn der Benutzer in der Zeit drückt und wieder loslässt, merkst du das 
gar nicht.
Es sei denn, du machst den C groß genug :-)

Autor: Andy S. (andy11)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klaus Wachtler schrieb:
> Wenn der Benutzer in der Zeit drückt und wieder loslässt, merkst du das
> gar nicht.

Merke ich was garnicht.

Klaus Wachtler schrieb:
> ist das jetzt dein Ernst?

Die 500ms ergeben sich weil der Benutzer meines Menüs sehen soll dass er 
ok drücken muss.
Also deshalb das "Blinken". und mit dem auch gleich die ENtprellung.
So ist das gemeint.

lg andy

Autor: Andy S. (andy11)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
SRYYY das war a bledsinn was ich gmacht hab.

Nicht beachten. Es stimmt nämlich prinzipiell nicht komm ich grad drauf.

lg andy

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andy S. schrieb:
> Meinst du das ernst oder soll das ein witz sein?

Die Leitungen zu den Tasten wirken als Antenne. Und wenn das durch 
fehlerhafte Software nicht berücksichtigt wird, gibt es Fehlreaktionen.

Du kennst bestimmt auch Geräte, die sich durch elektrostatische 
Entladungen stören lassen.


Peter

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.