
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
||
|
> Hallo zusammen, > > hab ein kleine Problem mit der Programmierung. Schleifen und Abfragen sind eigentlich kein Problem für mich, da ich C++ und andere Sprachen kann, aber C-Control bringt mich echt zum verzweifeln! > > Folgende Gedanke : > > Überprüfung ob auf Port1 ein Signal anliegt. Wenn ja, dann in Subroutine gehen und irgendwas machen. > Die Subroutine soll aber nur einmal aufgerufen werden und nicht bei jedem Loop! > > Versuchte Lösung : > > Hab mir ne Art Schutzvariable eingebaut. Beim ersten Durchlauf funzt das auch ganz gut, aber beim zweiten mal ändert er einfach immer das Bit in der Variable! Keine Ahnung warum! > > Code : > > define E1 port[1] > define E2 port[2] > define E1Schutz bit[1] 'Zustandsprüfer > define E2Schutz bit[1] 'Zustandsprüfer > define LEDBetrieb port[16] 'Betriebsanzeige > > #Loop > > LEDBetrieb = ON > if (E1 AND 1) = 1 AND E1Schutz = 0 then gosub Routine1 > if (E1 AND 1) = 0 then E1Schutz = 0 > > if (E2 AND 1) = 1 AND E2Schutz = 0 then gosub Routine2 > if (E2 AND 1) = 0 then E2Schutz = 0 > > > > pause 50 > > goto Loop > > #Routine1 > E1Schutz = 1 > print "Sende 1" > goto Loop > > #Routine2 > E2Schutz = 1 > print "Sende 2" > goto Loop > > > > Hat jemand ne idee? > > Danke > > Gruß > > Alex Hallo Alex, ... Bitvariable können nicht den wert 1 annehmen. Entweder on der off !! mal ein kleiner Auszug aus der Hilfe von CCBasic: Definition von Bitvariablen Bitvariablen können die Werte ON und OFF annehmen. Sie dienen so zur einfachen Speicherung von Zuständen (Flags). Vor der ersten Verwendung im Programm muß eine Bitvariable definiert werden. DEFINE varname BIT[index]varname gültiger Bezeichnerindex 1...192 DEFINE flag BIT[1] Um eine Bitvariable (flag) abzufragen, schreiben Sie IF flag THEN ... oder IF flag = ON THEN ...Falsch ist IF flag = 1 THEN ..., da Bitvariablen nie den Wert 1 annehmen (ON ist ungleich 1!!!). Im übrigen definierst Du 2 unterschiedliche Variablen mit dem gleichen Bit (1) Gruß Gerhard |
| Antwort schreiben |