![]() ![]() INFO - FAQ - CC2-Forum - CCPro-Forum |
|
Hallo Forum, ich habe da ein Problem mit der Programmierung von zwei Ports. Hier einmal der "simple" Code: --- Definiere Ports OpenMicro -------------------------------------------------------- define RS232 PORT[1] define portDrucklose PORT[4] define portDruck PORT[5] define portTaster PORT[6] ' --- Definiere Variablen ---------------------------------------------------------------------- define varCounter byte[1] ' Counter für Pause ' --- Voreinstellung der Hard- & Software ---------------------------------------------- ' -1 = Ein/On; 0 = Aus/Off portDruck = -1 ' Port auf Ausgang schalten portDrucklose = -1 ' Port auf Ausgang schalten portDruck = 0 ' Startposition portDrucklose = -1 ' Startposition varCounter = 0 ' --- Hauptschleife ------------------------------------------------------------------------- #Schleife portDruck = 0 portDrucklose = -1 if portTaster = -1 then goto Schleife1 goto Schleife ' --- Wenn Taste gedrückt ist dann... ------------------------------------------------------- #Schleife1 portDrucklose = 0 ' Port 4 ausschalten portDruck = -1 varCounter = 0 For varCounter = 0 to 10 ' enspricht ca. 4 Sekunden If portTaster = 0 then goto Schleife Pause 20 ' entspricht 0,4 Sekunden Pause (Faktor mal 20ms) NEXT varCounter portDruck = 0 portDrucklose = 0 #Schleife2 If portTaster = -1 then goto Schleife2 goto Schleife ' Zurück zur Hauptschleife end ' Programmende Das Problem: Soweit funktioniert alles. Wenn man die Taste gedrückt hält, und das Programm eigentlich über die ForNext Schleife das "portDruck" und "portDrucklose" auf AUS bzw. 0 setzten soll funktioniert das nicht. Anstatt es auf null zu setzen ist auf unerklärlicher Weise "portDruck" auf EIN/-1 und "portDrucklose" auch auf EIN/-1. Lässt man die Taste los, springt er normal zur Hauptschleife. Ich frage mich wo der hinspringt wenn die Taste gedrückt bleibt. Normalerweise müsste der da aus der Schleife (ForNext) herausgehen und im Porgramm weiterarbeiten - macht er aber nicht wirklich. Kann mir dazu jemand helfen? Danke. lg grex |
Antwort schreiben |