Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: Port funktioniert nicht Kategorie: Programmierung Basic (von Robby - 14.01.2009 15:03)
 Als Antwort auf Port funktioniert nicht von Grex - 14.01.2009 10:05
> 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

Bisherige Antworten: