Code wird nicht immer ausgeführt

OP #2651775
Lesenswert?

Guten Tag.
Ich muß mich wiedermal an Euch Experten wenden.
Ich verwende in meinem Programm die Software Uart und Entprellung von 
Peter Dannegger (Vielen Dank dafür an Peter). Leider funktioniert die 
Entprellung nur dann wenn auch die Kommunikation läuft. Der betreffende 
Teil ist dieser
1
for(;;)
2
  {
3
    
4
      
5
    RxProt(ugetchar());
6
    if (protoflag &(1<<RxComp))
7
    {
8
      //Proto.output= PINA;
9
      Proto.analog[0]=analog[0];
10
      Proto.analog[1]=analog[1];
11
      Proto.analog[2]=analog[2];
12
      Proto.analog[3]=analog[3];
13
      Proto.crc = CalcCRC16(&Proto,sizeof(Proto)-1);
14
      Transmit(&Proto,sizeof(Proto));
15
      protoflag &= ~(1<<RxComp);
16
    }
17
    if( get_key_short( 1<<KEY1 ))
18
    {
19
      PORTA ^= 1<<PA0;
20
    }    
21
    if( get_key_long( 1<<KEY1 ))
22
    {
23
      PORTA ^= 1<<PA1;
24
    }  
25
  }
26
}
Nochmal zur Erklärung die Led an PA0 und PA1 lassen sich nur Toggeln 
wenn zuvor ein korrektes Datenpaket empfangen wurde und somit das RxComp 
Flag auf 1 gesetzt wurde.Der Timer 0 mit der Entprellroutine läuft immer 
durch
Ich begreife einfach nicht was ich falsch mache.
Ich wäre Dankbar wenn mir jemand helfen könnte

Gruß
Peter
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren