-         

Ergebnis 1 bis 10 von 10

Thema: c-Control Programmierung

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    23.12.2007
    Beiträge
    22

    c-Control Programmierung

    Anzeige

    Hallo Freunde,
    ich möchte mir so gerne einige Steuerungen für meine Wohnung bauen.
    Meine Problem ist Programmierung der Tasten, mit C-Control,
    ich möchte nur eine Taste Programieren
    z.B

    Code:
    Define E1 Port[1] (eingabe)
    Define A1 Port[2] (ausgabe)
    
    #Loop 
    If E1=on Then A1=On else A1=off
    Goto Loop
    Damit kann ich Taste E1 drücken, und A1 bekommt Signal,
    aber wenn ich E 1 los lasse geht auch A1 auf Knie,
    es sollte so sein:
    E1 kurze klick A1 =on
    E1 2. mal kurze klick A1=off.

    Zweite Problem ist:

    Wenn ich E1 Kurze Signal gebe soll A1 Signal erhalten, nach eine Minute später soll A1 wieder auf 0 gehen.

    Kann man mir bitte helfen ? es geht ja nur eine Eingang und eine Ausgang.

    Ich habe alles versucht auch Goto Gosub Wait usw. Pause
    bidde bidde helfen
    Danke vorraus
    Gruss
    Beta

  2. #2
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.10.2008
    Ort
    Wulferstedt
    Beiträge
    1.042
    Fürn genauen Test reichts bei mir zeitlich zwar jetzt auch nicht, jedoch
    kann muss man bei der C-Control eh die zu benutzenden Ports immer
    abfragen. Dann konnte man bei Tastendruck in eine Schleife springen,
    während des Tastendruckes in der Schleife verbleiben, nach Loslassen
    aus der Schleife springen und eine Bitvariable, mit der man weitere
    Funktionen auslösen kann, umschalten mit TOGGLE. Ist nur ein Beispiel
    mit warscheinlich vielen GOTOs, aber GOTO ist vollwertiger Befehl, wie
    die meisten anderen auch. VG Mica

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    23.12.2007
    Beiträge
    22
    Danke Mica,
    sagte ich doch, ich habe alles versucht, für jemand der richtig ahnung hat, ist nur paar Zeile das weiss ich, aber wie? mit schleifen funktioniert nicht.
    Gruss
    Beta

  4. #4
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    16.10.2008
    Ort
    Wulferstedt
    Beiträge
    1.042
    Sind schnelle Schaltroutinen verlangt,vielleicht gehts noch anders.
    VG Micha

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    12.04.2006
    Ort
    Dresden
    Alter
    62
    Beiträge
    370
    Hi,
    Hilfsvariable erstellen ( Bit-Typ reicht );
    Unterprogramm erzeugen;
    Ins Unterprogramm springen wenn taste gedrückt;
    Im Unterprogramm Hilfsvariable Invertieren,
    Ausgang mit wert der Hilfsvariablen laden,
    sekunden und minuten auf "0" stellen,
    warten bis Taste losgelassen ( wichtig! ),
    return
    2tes UP:
    Inder Hauptschleife minuten auf > 0 testen, wenn ja:
    Ins 2te Up springen
    Hilfsvariable und ausgang auf 0 stellen
    return
    Schönheitsfehler:
    Es wird ständig ( 59 von 60 min ) ins 2te UP gesprungen,
    aber aus bleibt aus
    MfG Lutz
    Wir haben so viel mit so wenig solange versucht, das wir jetzt qualifiziert sind, fast alles mit fast nichts zu bewerkstelligen.

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    23.12.2007
    Beiträge
    22
    hallo Liebe Lutz,
    danke für die Hilfe, ich muss kurz die Program sehen sonst kann ich nicht verstehen was du meinst mit unter Programm habe ich auch versucht, aber die C-Control ist schnelle als ich drücken kann, deswegen ensteht eine schleife die relasi ist nicht mehr an, sonden an aus, es brumt also.

    Gruss
    Beta

    danke
    Beta

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    10.11.2008
    Beiträge
    13
    Hallo Beta,
    oder etwa so, aber ungetestet, das Prinzip sollte aber erkennbar sein
    Code:
    define E1 Port[1] (eingabe) 
    define A1 Port[2] (ausgabe) 
    define SaveSecond as byte
    define TimeSecond as byte
    
    #Loop
     if SaveSecond<>second then        ' jede Sekunde 1x abarbeiten
      SaveSecond=second
      if TimeSecond>0 then dec TimeSecond      ' Timeout runterzählen
      if TimeSecond=1 then A1=off       ' ausschalten wenn Zeit abgelaufen 
     end if
     If E1=on then             ' Taste gedrückt
      if A1=off Then           ' wenn aus dann einschalten
       A1=On
       TimeSecond=61        ' Timeout 60 Sekunden
      else                          ' wenn an dann ausschalten
       A1=off
       TimeSecond=0
      end if
      wait E1=off                ' warte bis Taste losgelassen
     end if
    goto Loop
    Gruß Jörg

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    12.04.2006
    Ort
    Dresden
    Alter
    62
    Beiträge
    370
    Hi,
    etwas ausführlicher:

    Code:
    '**************************************
    ' Port mit einer Taste Ein/Aus,
    ' Max 60 sek Ein.
    ' FriLu 03.05.09
    '**************************************
    define Taste   Port[1]
    define Relais  Port[2]
    define merker byte  '  Bit reicht,
    ' def je Bas-Dialekt unterschiedlich
    '**************************************
    #Loop
      if Taste then gosub Tastendruck
      if min > 0 then gosub Zeit
    goto Loop
    '**************************************
    '***   UPs   ******
    #Tastendruck
      merker= not merker
      Relais= merker
      min= 0
      second= 0
      wait not Taste ' Warten bis
    '      Taste losgelassen !
    return
    '******************
    #Zeit
      merker= off
      Relais= off
    return
    '******************
    '   Bemerkungen:
    ' zur HW:
    ' Taste an Ub und Eingang,
    ' zwischen Eingang und Masse Widerstand (Pulldown)
    '
    ' Zum Programm:
    ' Ungetestet!
    lange nicht mehr C-Control programmiert,
    hoffe, das stimmt so...
    MfG Lutz
    Wir haben so viel mit so wenig solange versucht, das wir jetzt qualifiziert sind, fast alles mit fast nichts zu bewerkstelligen.

  9. #9
    Neuer Benutzer Öfters hier
    Registriert seit
    23.12.2007
    Beiträge
    22
    Vielen Dank für eure Hilfe Jörg und Lutz, es hat nicht Funktioniert, aber ich kann das rest selber raus finden, ich suchte nur den Weg, wie ich anstellen soll,
    gruss
    Beta

  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    10.11.2008
    Beiträge
    13
    Hallo beta,

    - wir wissen ja nicht was für eine C-Control du hast, wenn mit LCD-Display, arbeite dich mit LCD-Ausgaben der Variablen oder Tastenereignissen an die Lösung.
    - Teste erstmal die Hauptschleife ohne Tastenereignisse und erweitere dann Schritt für Schritt.
    - Evtl muss die Funktion "dec TimeSecond" durch "TimeSecond=TimeSecond-1" ersetzt werden, wenn deine OS-Version zu alt ist und "dec" noch nicht kennt.

    Gruß Jörg

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •