die Zeile 16 hab ich hinzugefügt.
???
Im Code in #59 war sie doch drin, den hatte ich in #75 nochmal kopiert.
In #76 fehlt sie hingegen...
Du hattest lediglich das lokale Echo nicht unterdrücken lassen, d.h. das eingetippte Zeichen wird zurückgesendet (vom simulierten Controller wie auch vom tatsächlichen Controller).
Input wartet aber auch auf das ASCII 0x0D (Carriage Return, CR, Wagenrücklaufzeichen) - erst dann geht es mit dem IF weiter.
Laß mal direkt vor der Hauptschleife 'ne Bereitschaftsmeldung senden. Also bei dem Code in #76 in Zeile 14:
CodeBox BascomAVR
Print "bereit..."
Input kann auch vorher etwas senden - ist dann quasi ein kombiniertes Print-Input.
Ergänze die (in #76 eh fehlende) Input-Zeile (Zeile 16) zu:
CodeBox BascomAVR
Input "Zeichen eingeben: " , Zeichen
Dadurch wird erst jedesmal "Zeichen eingeben:" gesendet (als wenns Print wäre), danach wartet die Instruktion auf ein Carriage-Return-Zeichen. Vorher kann bis zu ein Zeichen eingegeben werden (weil die Stringvariable in Zeile 11 so definiert wurde - ein ASCII eben), dieses wird durch das Echo auch ausgegeben. Aber erst das Carriage Return beendet diese Eingabe, und das Programm macht in Zeile 17 weiter, wo das Zeichen ausgewertet wird.
Zum "?"-Block:
Zum Anschalten der LED hast Du Led_rot 'ne "1" zugewiesen, Led_rot ist also "1".
Zum Ausschalten der LED hast Du Led_rot 'ne "0" zugewiesen, Led_rot ist also "0".
Um den Status der LED abzufragen mußt Du also nur Led_rot abfragen. Auswerten mit If then Else, wie das bereits mit "Zeichen geschehen ist...
Ein frohes Osterfest wünsche ich Dir und deiner Familie
Danke, Euch ebenso.