Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Re: port-abfrage Kategorie: Programmierung (von Martin Binder - 22.05.2004 22:57)
Als Antwort auf Re: port-abfrage von Haddi - 18.05.2004 16:26
Ich nutze:
C-Control II Unit, CC2-Application-Board, eigenes Board, OSOPT V3.0
Hallo Haddi,

ich glaube Du hast keine Idee wovon ich rede.
Lies mal meinen früheren Eintrag vom 22. April nach unter:
http://www.cc2net.de/Foren/CC2Net_Forum/lesen.php?eintrag=7228
( auch zu finden mit "Suchen" und dem Wort "timer" )

Mit den beiden "wait"- Befehlen kommst du nicht weiter, weil dann der Task blockiert ist.

mfG
Martin

> Hallo vielen Dank für die schnelle Antwort,
>
> ok, wenn ich also bspw. programmiere
>
>  thread stoe_abfr
> {wait ports.get (8);
> if timer >= 1000 {a=1;}
> wait not ports.get (8)
> a=0; }
>
> wie geht das Programm denn dann weiter, wenn der timer noch kleiner 1000 ist. Meiner Ansicht nach
> bleibt er beim nächsten wait stehen bis port 8 = 0 ist.
> Aber eigentlich sollte der Thread doch in meinem Fall von Vorne beginnen.
>
> Haddi
>
> > Hallo,
> >
> > am elegantesten ist glaube ich folgendes:
> > setze ein Flag, wenn der Fehler erstmal auftritt, und starte einen Timer.
> > Ein Programmbeispiel dazu hab ich schon früher ins Forum gepostet.
> >
> > Dann bei jedem Durchlauf prüfst Du, ob der Fehler noch anliegt.
> > Wenn ja, prüfst Du, ob der Timer schon 1 Sekunde hinter sich hat.
> > Nochmals ja, und der Wert "a" kann gesetzt werden.
> >
> > Wenn vorher der Fehler verschwindet, wird Flag gelöscht und der Timer gestoppt.
> >
> > Damit kann man den Task auch für andere Aufgaben benutzen.
> >
> > Einfacher wäre ein schlichtes Sleep 1000, und eine zweite Abfrage vor dem Setzen von "a".
> > Allerdings ist das eher die Holzhammermethode, denn der Task ist 1 Sekunde blockiert.
> >
> > Martin
> >
> > > Hallo,
> > >
> > > das ist bestimmt ein ganz simples Problem, aber
> > > ich steh grad auf dem Schlauch und komm nicht weiter.
> > > Ich frage mit der CC2-Station eine Maschinenstörung ab.
> > > Im folgenden habe ich das mal vereinfacht dargestellt.
> > >
> > > thread stoe_abfr
> > > {wait ports.get (8);
> > > a=1;
> > > wait not ports.get (8)
> > > a=0; }
> > >
> > > Ich möchte jetzt, dass die Störung (also port(8)) mindestens 1 sec anliegt bevor in dem Beispiel
> > > a=1 gesetzt wird. Liegt díe Störung nur kurz an, soll das ganze von vorne beginnen.
> > >
> > > Ich hoffe mir kann da mal einer von Euch auf die Sprünge helfen. Im Voraus herzlichen Dank.
> > >
> > > Grüsse
> > > Haddi


    Antwort schreiben


Antworten:

Re: port-abfrage (von Haddi - 8.06.2004 11:47)