Ich würds so schreiben. Dann ist alles klar und es gibt keine
Unklarheiten
1 | if (zaehler1 == 0){
|
2 | Wertkopie = Wert;
|
3 | }
|
4 |
|
5 | zaehler1++;
|
6 |
|
7 | if (zaehler1 >= 50){
|
8 | zaehler1 = 0;
|
9 |
|
10 | if ( WertKopie == Wert ){ // hat sich der Wert nicht geändert
|
11 | Wert = 65535; // Rücksetzen
|
12 | }
|
13 | }
|
Das trennt die Erkennung des Startwertes ganz klar von der Erkennung des
Endwertes und zeigt auch das zaehler1 laufend erhöht werden soll.
Da ist auch noch das generelle Prinzip zu erkennen, wie man eine
Variable macht, die laufend reihum von 0 bis 49 zählt und so 50 Aufrufe
abzählt
1 | cnt++;
|
2 | if( cnt >= 50 )
|
3 | cnt = 0;
|
Du willst davor noch etwas machen, nämlich dann wenn cnt gleich 0 ist
und du willst etwas machen, wenn der Ringelreihen einmal rum ist und der
nächste Durchgang beginnt. Das eine fragst du vor der Erhöhung ab, weil
es auch beim allerersten Starten gemacht werden muss, das andere nach
der Erkennung des 'Overflows', weil das beim allerersten Aufruf eben
nicht passieren darf.
Du hast ganz einfach in meinen Augen versucht zuviele (und vor allen
Dingen zu unterschiedliche Dinge) in eine if-else Leiter zu quetschen.