Variable mit Tastendruck erhöhen

Gast #2871422
Lesenswert?
• ▲
▼
Hi,

ich habe einen Taster und versuche ein Programm zu schreiben das so 
funktioneren soll:

Ich drück den Taster für 1Sekunde, danach - wenn die Taste weiterhin 
immer noch gedrückt ist - wird alle 100ms ein %-Wert erhöht und an die 
USART gesendet. (Kennt mann von zu Hause bei einem Tastdimmer...)

Ich glaube, dass mein Weg nicht der Richtige ist da er Augenscheinlich 
zu viel Zykluszeit in Anspruch nimmt.
Ich merke das daran, das der 100ms Impuls nicht mehr alle 100ms kommt 
(Was er normalerweise tut) sondern das dass Ganze unregelmäßiger wird.
Irgendwo habe ich da einen Bock drin...Kann mir einer Helfen? Evtl. geht 
mein Vorhaben auch wesentlich einfacher?!
1
void TasterDimmenAuf (bool bit , bool imp, uint8_t ArrNr)
2
{
3
    
4
  //Licht Ein
5
    if (R_TRIG(bit)){licht_schalten[ArrNr] = 1;}
6

7
    //Nach Zeit Licht Dimmwert erhöhen
8
  if (bit && imp) 
9
  {
10
  ArrayCountTasterDimmer[ArrNr]++;
11

12

13
    if (ArrayCountTasterDimmer[ArrNr] > 10) 
14
    {
15

16
    u8SpeicherDimmwert[ArrNr]++;    
17
    //
18

19
      if (u8SpeicherDimmwert[ArrNr] <=100)
20
      {
21
      
22
  usart_writePC("98|11|05|%1i\n\r", u8SpeicherDimmwert[ArrNr]);
23
      }
24
    }
25
  }
26
  else if (!bit) 
27
  {
28
  ArrayCountTasterDimmer[ArrNr] = 0;
29
  }
30
}

So der Aufruf in der Main while Schleife
1
  TasterDimmenAuf (Eingang[0], _100msImp,12);

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.