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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.