Blink programm für c-control

OP #2009592
Lesenswert?

Hallo!

ich würde ein blinkprogramm für meine c-control pro ministation 
brauchen!

das blinken soll durchen einen taster am input1 gestartet werden!

dann soll eine led am output1 2 mal hintereinander zeitverzögert 
aufleuchten. dann das gleiche noch mal am output2. und dann immer weiter 
und weiter bis der taster am input1 erneut gedrückt wird.

danke schon mal für die hilfe!


gruß chris
#2009595
Lesenswert?

Christian Siegl schrieb:
> Hallo!
>
> ich würde ein blinkprogramm für meine c-control pro ministation
> brauchen!
>
> das blinken soll durchen einen taster am input1 gestartet werden!
>
> dann soll eine led am output1 2 mal hintereinander zeitverzögert
> aufleuchten. dann das gleiche noch mal am output2. und dann immer weiter
> und weiter bis der taster am input1 erneut gedrückt wird.
>
> danke schon mal für die hilfe!

Wo ist dein bisheriger Versuch?

Ist ja nicht so, dass das jetzt wahnsinnig schwierige Raketentechnik 
wäre.
#2009612
Lesenswert?

Christian Siegl schrieb:
> das problem ist das ich das schon lange nicht mehr gemacht habe und nur
> eine grundeinschulung hatte! :(

Macht ja nichts.
Eine der Grundregeln hier im Forum lautet:
Du zeigst was du hast, sagst bei welchem Detail du Schwierigkeiten hast.
Das Forum korrigiert dann, das was du zeigst oder liefert Ideen oder 
hilft schon mal an der einen oder anderen Stelle aus.

Aber bei 0 anfangen: das tun wir nicht.
OP #2009623
Lesenswert?

das ist etwas was ich mit einem freund gemacht hab!

nur was er da mit INPUT_1 == 1 und so gemacht hat verstehe ich nicht!




int ein;

void main(void)
{

    MINI_INIT();

    ein = 0;

    //Thread starten
    Thread_Start(1,thread1);

    do {

      //Ein/Aus umschalten bei Signal auf Input_1
      if (INPUT_1  == 1) {
          if (ein == 0)
              ein = 1;
          else
              ein = 0;
      }

    } while (1);

}

void thread1(void)
{
    while(true)
    {
        if (ein == 1) {
          //Werte in MiliSec.
          OUTPUT1_ON();
          Sleep(1000);
          OUTPUT1_OFF();
          Sleep(500);
          OUTPUT1_ON();
          Sleep(1000);
          OUTPUT1_OFF();
          Sleep(500);

          OUTPUT2_ON();
          Sleep(1000);
          OUTPUT2_OFF();
          Sleep(500);
          OUTPUT2_ON();
          Sleep(1000);
          OUTPUT2_OFF();
          Sleep(500);
          }
      else {
        OUTPUT1_OFF();
        OUTPUT2_OFF();
      }
    }
}
#2009627
Lesenswert?

Christian Siegl schrieb:
> Hallo!
>
> ich würde ein blinkprogramm für meine c-control pro ministation
> brauchen!
>
> das blinken soll durchen einen taster am input1 gestartet werden!
>
> dann soll eine led am output1 2 mal hintereinander zeitverzögert
> aufleuchten. dann das gleiche noch mal am output2. und dann immer weiter
> und weiter bis der taster am input1 erneut gedrückt wird.
>
> danke schon mal für die hilfe!
>
>
> gruß chris

Da passt es besser..

http://ccpro.cc2net.de/forum/


nitraM
#2009644
Lesenswert?

Christian Siegl schrieb:
> aso!

Na ja.
Die haben sich schon was dabei gedacht, als sie die 'Variable' INPUT_1 
genannt haben. INPUT so wie Eingabe.

> das weiß ich nicht ob es funktioniert! ich hab gerade keine möglichkeit
> zum anschließen!

Schade. Ich kenn die C-Control nicht. Jetzt kommt es drauf an, ob dieses 
INPUT so funktioniert, dass es 1 liefert solange eine Taste gedrückt 
ist, oder ob es bei einem Tastendruck einmalig eine 1 liefert.

Der Unterschied ist wie bei Rollosteuerungen:
Bei den einen läuft das Rollo, solange der Finger auf der Taste ist.
Lässt man los, dann hört auch das Rollo auf zu fahren.
Bei den anderen drückt man einmal drauf und das Rollo fährt nach oben, 
egal wie lange man drückt oder nicht drückt. Es ist die einmalige 
Betätigung, die alles auslöst.

Funktioniert dieses INPUT wie ersteres, so schaltest du das Blinken 
dauernd ein/aus, solange du die Taste drückst. Und das dürfte nicht das 
sein, was du willst :-)
#2009685
Lesenswert?

OK

Und das willst du nicht.

Das bedeutet, dein Programm muss daher nach dem Erkennen des 
Niederdrückens einer Taste darauf warten, dass sich der Benutzer dazu 
bequemt, den Finger wieder von der Taste zu nehmen
1
  ...
2
  ...
3
   do {
4

5
      if (INPUT_1  == 1) {     // Taste wurde niedergedrückt
6

7
          if (ein == 0)        // Blinken ein oder ausschalten, je nachdem
8
              ein = 1;         // ob es zur Zeit ein oder aus ist
9
          else
10
              ein = 0;
11

12
          while( INPUT_1 == 1 )  // darauf warten, dass der Benutzer wieder
13
            ;                    // loslässt. Einfach nur warten und sonst
14
                                 // nichts weiter tun.
15
      }
16

17
    } while (1);
18

19
  ...

(und dann hoffen wir mal, das Conrad die Taster entprellt hat)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren