Hallo ..Razmataz..,

zu deinem Programm ein paar Tips:

1. Hardware:
Offenbar hast du einige Taster an Pins von PortA angeschlossen.
Das ist ok. Du brauchst aber diese Taster nicht analog (d.h. mit Getadc wie bei einer analogen Tastatur, die du zum Beispiel an AD7 benutzt) auszulesen, sondern kannst sie als Digitalports (X = Pina.Y) auslesen. Dadurch bekommst du eine klare digitale Antwort (Schalter offen/zu = 0/1). Alle Spannungsmessungen sind dann nicht nötig. Das Programm wird ganz einfach.
Was du brauchst ist also nur EIN Unterprogramm, das den Zustand aller Schalter immer wieder einliest und z.B. in variablen (namens Deckel, Schaltplus ...) speichert. Das "immer wieder" kann man in der Haupt-Do-Loop Schleife des Programms oder besser auch in einer ISR (z.B. 1x pro Sekunde) machen.

2. Software:
Die Servo1..12 Variablen sind ein typisches Array. Ich würde sie auch so (z.B. als Servopos(x) ) anlegen.
Deine Frage bezog sich aber eher auf die Programmlogik:
Die kann ich in deinem Programm wegen vieler nahezu identischer Variablennamen nur mit großer Mühe nachvollziehen.
Namen wie "TasteY" machen das Verständnis schwer und du wirst selbst nach 1/2 Jahr dein Programm nicht mehr verstehen.
Am besten ist die Benennung nach Funktionen (Deckel_aufzu, Akkuspannung ...).
Beispiel:
Wenn ich im Programm auf die Variable "Taste" stoße, muss ich erst die Zeile "Taste = Tastenabfrage()" suchen, dann schaue ich mir die Funktion "Tastenabfrage()" an, um da erst zu sehen, dass AD7 ausgelesen wird und aus der Case-Struktur zu erkennen, dass hier wohl eine analoge Tastatur angeschlossen ist. Zurück zu meiner Ausgangszeile "If Taste <> 0 Then" kann ich dann sehen, dass Taste 1 zum Hochfahren des TFT dient, usw.
Diese Analyse ist so mühsam, dass ich eine Fehlersuche nur in kurzer Zeit machen könnte, wenn ich deine Hardware nachbaue.

3. Vorschlag:
Konstruiere dein Programm hier im RN neu:
a) Mache zuerst eine Do-Loop Schleife mit nur zwei Funktionen: Die 1. liest alle Schalterstellungen in einzelne Variablen (mit passenden Namen) aus. Die zweite zeigt die Stellung aller Schalter (an/aus) z.B. mit den LEDs des RN-Control an.
b) Von deinen Funktionen behalte nur Tfthoch() und Tftrunter().
c) Jetzt kommt die 3. Funktion in die Do-Loop-Schleife: Die "Logikfunktion". Da fragst du mit einfachen If-then Strukturen die Taster ab: If Deckel_auf Then Tfthoch() usw. Auch die Spannung vom Zündschloß (Zuendung_an o.ä.) kann so abgefragt werden, aber nur nach dem Einschalten. Sobald danach die Deckel_auf- oder _zu-Taste gedrückt wurde, ist der Zustand von Zuendung_an solange egal, bis er 0 wird. Dann muss das TFT wieder einfahren. Das geht per Logik einfach zu machen. Erst würde ich aber die grundlegende Programmstruktur ganz neu machen.

Gruß Dirk

P.S.: Ist zwar nicht die schnelle Lösung, aber die, mit der du am meisten lernst.