Hallo
Da die Linienwerte beim orginal bestückten asuro nie 500 erreichen, sollte der erste if-Zweig nie ausgeführt werden. Mehr als 1023 werden es sicher auch nie sein, denn die Funktion liefert nur einen 10-Bit-Wert. Also reduzieren wir mal aufs wesentliche:Code:if (data[1] > 500) { if (data[1] >1024) StatusLED(GREEN); else StatusLED(YELLOW); } else if (data[1] >1 || data[0] > 1) StatusLED(RED); else StatusLED(OFF);
Funktioniert die Anzeige mit der StatusLED wie erwartet, wenn man data[0] auf 2 setzt?Code:unsigned int data[2]; while (1) { LineData(data); data[0]=2; // Test der Funktionalität der Anzeige if (data[1] >1 || data[0] > 1) StatusLED(RED); else {StatusLED(OFF); while(1);} // Programmende! while(PollSwitch() < 1) warte(1); }
Gruß
mic







Zitieren

Lesezeichen