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

Re: ports Kategorie: Programmierung (von Helmut - 30.10.2003 8:25)
Als Antwort auf Re: ports von MiGi - 29.10.2003 19:59

Hi,
danke für die antwort.

die threads sollten nicht voneinander verriegelt werden. wenn ich eine capture variable setze
dann kann ich nicht 2 ports gleichzeitig ansteuern oder??
dass hei�t dass wenn ich port 1 10 sekunden ansteuere und nach 5 sekunden port 2 wären
sie ja verriegelt oder???

mfG helmut


> Hallo Helmut,
>
> zuerst musst du die Zeilen
>
>               run r1;
>               run r2;
>               run r3;
>
> vor die loop-Schleife setzen            .
> Weiterhin müssen die Treads gegeneinander verriegelt werden mit capture ... release bevor die
> port.set - Funktion ausgeführt wird.
>
> Probiers mal aus
>
> GruÃ?
> MiGi
>
>
>
> > Hi an alle
> > habe ein problem mit einer Portansteuerung
> > bitte helft mir
> >
> >
> >
> > Programm:
> >
> > int re,time[3];
> > thread r1
> > {run 5;
> >  if re == 1 {
> >             ports.set(1,1);
> >             sleep time[re-1];
> >             ports.set(1,0);
> >             time[re]=0;
> >             re=0;
> >            }
> > }
> > thread r2
> > {run 5;
> >  if re == 2 {
> >             ports.set(3,1);
> >             sleep time[re-1];
> >             ports.set(3,0);
> >             time[re]=0;
> >             re=0;
> >             }
> > }
> > thread r3
> > {run 5;
> >  if re == 3 {
> >             ports.set(5,1);
> >             sleep time[re-1];
> >             ports.set(5,0);
> >             time[re]=0;
> >             re=0;
> >             }
> > }
> >
> > thread main
> > { run 10;
> >   string Re,X,zeit;
> >   byte b[100];
> >   int i;
> >  
> >   hwcom.init();
> >   hwcom.setspeed(hwcom.SPEED_9600);
> >   hwcom.flush();
> >
> >  loop{
> >       i=hwcom.receive(b,10,1000);
> >       if i>0{
> >               strx.cut(b,Re,0,1);
> >               X="x";
> >               if strx.comp(Re,X) quit -1;
> >               re=strx.getNum(Re);
> >               strx.cut(b,zeit,0,5);
> >               hwcom.put(13);
> >               hwcom.put('R');
> >               hwcom.send(Re,str.length(Re));
> >               hwcom.put('T');
> >               hwcom.send(zeit,str.length(zeit));
> >               time[re]=strx.getNum(zeit);
> >               run r1;
> >               run r2;
> >               run r3;
> >             }
> >       }
> > }
> >
> > Re... Relaise
> >
> > in diesem Programm geht es darum, dass ich eine Zahl in das Terminal schreibe z.B: 2500
> > er soll dann das relay 2, 500 ms ansteuern. weiters soll er R2T500 ausgeben.
> > und wenn x kommt führt er einen Softwarereset durch.
> >
> >
> > er gibt zwar aus was er soll, aber die Zeitansteuerung funzt nicht.
> >
> > bitte helft mir weiter
> >
> > Mfg Helmut


    Antwort schreiben


Antworten:

Re: ports (von krassos - 30.10.2003 12:07)
    Re: ports (von helmut - 31.10.2003 10:04)
        Re: ports (von krassos - 1.11.2003 12:42)
            Re: ports (von krassos - 1.11.2003 12:54)
                Re: ports (von krassos - 1.11.2003 13:15)