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
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.
na dann zeig doch mal, was Du schon bis jetzt fertig hast. So wirst Du keine Hilfe bekommen.
das problem ist das ich das schon lange nicht mehr gemacht habe und nur eine grundeinschulung hatte! :(
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.
Für deine Aufgabenstellung brauchst du im einfachsten Fall * Tastenabfrage * LED einschalten * LED ausschalten * Warten * An Programmkonstukten: If, while, Sequenz Das wars dann auch schon im Wesentlichen. Alles Themen, die in jeder Grundschulung behandelt werden.
Christian Siegl schrieb: > das schon nur irgendetwas braucht man trotzdem als anhalt! Welche Teile kriegst du alleine hin? Lass doch mal die Tasten beiseite. Kannst du 2 LED wechselweise so wie du das beschrieben hast blinken lassen?
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(); } } }
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
Christian Siegl schrieb: > 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! Na dann sag das doch! Ich würde mal sagen, das ist die Abfrage ob eine Taste gedrückt ist (gedrückt wurde) oder nicht. Ist eine Taste gedrückt worden, dann ist INPUT_1 gleich 1 Funktioniert es denn?
aso! das weiß ich nicht ob es funktioniert! ich hab gerade keine möglichkeit zum anschließen!
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 :-)
input liefert nur 1 wenn ich drücke! wenn einmal gedrückt ist soll das ganze soo lange laufen bis wieder gedrückt wird!
Christian Siegl schrieb: > input liefert nur 1 wenn ich drücke! und was wenn du eine halbe Stunde lang drückst, in der Zwischenzeit dein Programm aber 500 mal INPUT abfragt? Kriegt es dann 500 mal ein 1 (weil die Taste ja gedrückt ist) oder kriegt es einmalig eine 1 (weil du ja nur einmal niedergedrückt *hast*).
ich schätz mal 500 mal input = 1 d.h. es schaltet sich immer ein und aus!
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)
ok danke! und sonst kann das ganze eigentlich funktionieren was ich da geschrieben habe?
Christian Siegl schrieb: > ok danke! > > und sonst kann das ganze eigentlich funktionieren was ich da geschrieben > habe? es sieht zumindest nicht unplausibel aus :-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.