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