
Zitat von
Dirk
im Programm 10_Move2 erfolgt die Abfrage der Sensorwerte schon regelmäßig in den Funktionen printAllSensorValues() und printAllSensorValues_WIFI().
Die werden wieder in displayBehaviour() und task_LCDHeartbeat() aufgerufen.
Wenn du also adcLSL im Hauptprogramm von 10_Move2 liest, müßten darin wechselnde Werte erkennbar sein.
Definierst du adcLSL in deinem neuen Programm?
Hi Dirk,
genau das, was du hier oben schreibst habe ich versucht in meinem erste Post darzustellen:
Ich habe kein NEUES Programm! Ich lass das gute alte 10_Move2 laufen, nur mit ein paar zusätzlichen Programmzeilen. Ich sehe die sich ändernden adcLSL-Werte im Terminal. Das ist alles so, wie es soll.
"adcLSL" gibt es also schon und die Werte werden auch richtig im Terminal dargestellt! Der Aufruf "getAllSensors()" existiert damit natürlich auch schon und funktioniert für die zwei Terminal-Print Funktionen.
Ich habe nun eben gerade meinen Code als neue Funktion "controlHeadlights()) vorne bei den bereits vorhandenen Funktionen mit eingebaut. Also nicht mehr in der "Main"!
Hier ist der Code der Funktion, wie er im Moment aussieht:
Code:
void controlHeadlights(void)
{
DDRL |= IO_PL5_OC5C; // PL5 = Ausgang (Scheinwerferanschluß)
getAllSensors();
uint16_t licht = adcLSL;
if(licht < 500)
PORTL &= ~IO_PL5_OC5C; // PL5-low = Scheinwerfer an
else
PORTL |= IO_PL5_OC5C; // PL5-high = Scheinwerfer aus
}
Aufgerufen wird er mit
Code:
controlHeadlights();
aus dem "main". Der Aufruf funktioniert, aber die Lichter sind immer an, unabhängig von dem im Terminal angezeigten adcLSL Wert.
Und nein, ich habe adcLSL nicht noch mal selbst definiert, die Variable ist doch schon definiert im Programm!?
ratlos Uwe
Lesezeichen