Steigende Flanke mit Funktion klappt nicht

OP #2364401
Lesenswert?
• ▲
▼
Hallo...
Ich versuche vergebens eine steigende Flanke von einer Arrayvariable zu 
generieren.
Diese Arrayvariable ist ca. 1s auf True und soll in einem anderen Array, 
welches als Rückgabearray fungieret, als steigende Flanek für ein Zyklus 
das bit auf true setzen welches ich dann in der main weiter verarbeiten 
kann.

Leider funktioniert das nicht, kann mir einer Helfen? Im Moment ist es 
so das die   usart_write_str("--array4--"); wesentlich öffters kommt als 
1mal. (Ich breche nach >100mal ab....)

Vielen Dank wenn mir einer helfen kann ...

So hatte ich mir das gedacht:
1
bool Eingang[64] = {false};
2
bool arraytest[40] = {false};;
1
void R_TRIG_Taster(bool bit,int bitnr, bool array[])
2
{
3

4
    if(!array[bitnr] && bit)   //Taster wird gedrueckt (steigende Flanke)
5
    {
6
    array[bitnr] = true;
7

8
    }
9
    else if (array[bitnr]  && bit)   //Taster wird gehalten
10
    {
11
     array[bitnr] = false;  
12
     
13
    }
14
    else  */ //Taster wird losgelassen (fallende Flanke)
15
    {
16
    array[bitnr] = false;  
17
    }
18
 
19
    return array;
20

21
}


so in der main-Schleife aufgerufen:
1
R_TRIG_Taster(Eingang[4],4, arraytest);
2

3

4
if (arraytest[4])
5
{
6
  usart_write_str("--array4--");
7
}
#2364430
Lesenswert?
• ▲
▼
1
void R_TRIG_Taster(bool bit,int bitnr, bool array[])
2
{
3
  if( array[bitnr] != bit)  // Es gibt einen Unterschied, als muss es eine Flanke 
4
  {                         // gegeben haben
5
    if( bit )               //   war es 0->1  ?
6
      array[bitnr] = true;  //     Ja:  steigende Flanke
7
    else                    //   nein: es war 1->0, fallende Flanke
8
      array[bitnr] = false;
9
  }
10
  else                      // es gibt keine Veränderung, Taster ist gedrückt
11
                            // oder losgelassen
12
    array[bitnr] = false;   
13
}

Antwort schreiben

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.

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.