![]() ![]() 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 Hallo Grex, meines Wissens nach arbeitet das Teil doch nur mit Bytewerten, also 0 bis 255. Sollte das Ein-bzw. ausschalten dann nicht mit 1 bzw. 0 funktionieren und nicht mit -1. Ich schalte an der OpenMidi zumindest so und es funktioniert im OM-Basic. Grüße, Robby. |
Antwort schreiben |