Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

Re: Beschleunigung des Lesens von Eingängen Kategorie: Programmierung Basic (von Jan - 23.04.2013 20:41)
Als Antwort auf Re: Beschleunigung des Lesens von Eingängen von SvenA - 23.04.2013 20:28

> > Hallo User,
> >
> > ich frage in einem zeitkritischen Programm die 8 Eingänge eines Ports einzeln ab, da ich die Bits
> > unabhängig voneinander als Bedingung benötige. Wird es zu einer Beschleunigung des Programmes führen,
> > wenn ich stattdessen den Wert des Ports lese und danach für die 8 Bedingungen die Werte der jeweiligen
> > Bits per Bitschiebefunktion ermittle? Oder kompensiert diese Berechnung die Zeitersparnis beim Lesen
> > wieder?
> >
> > Viele Grü�e, Jan
>
> Hallo Jan,
>
> im Manual selbst steht dazu
>
> Port Bit Zugriffe sind immer deutlich langsamer als die normalen Port Zugriffe die 8 Bit transferieren.
> Wenn man den gewünschten Wert aller Bits eines Ports kennt, sollte man immer 8-Bit Zugriffe machen.
>
> Ich gehe von aus das du vermutlich die BitWerte im Anschluss durch If then o.Ã?. bestimmte Aktionen
> zuordnest. Du kannst ja das Portbyte in diesen Abfragen durch logisches Maskieren (or, And, xor)
>
> && logisches Und  1 && 1 = 1  5 && 0 = 0
> || logisches Oder 0 || 0 = 0  1 || 0 = 1
> nur zur besseren veranschaulichung,
> portbyte = Port_Read(1)
>
> if Portbyte &&   1 then machLed1_an else machLed1_aus
> if Portbyte &&   2 then bit1=1 else bit1=0
> if Portbyte &&   4 then bit2=1 else bit2=0
> if Portbyte &&   8 then bit3=1 else bit3=0
> if Portbyte &&  16 then bit4=1 else bit4=0
> if Portbyte &&  32 then bit5=1 else bit5=0
> if Portbyte &&  64 then bit6=1 else bit6=0
> if Portbyte && 128 then bit7=1 else bit7=0
>
> hoffe es hilft dir weiter
>
Hallo Sven,
genau nach so einer Lösung habe ich gesucht. Vielen Dank.
Wieder etwas dazu gelernt

Jan


    Antwort schreiben


Antworten: