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 SvenA - 23.04.2013 20:28)
Als Antwort auf Beschleunigung des Lesens von Eingängen von Jan - 21.04.2013 19:07
Ich nutze:
C-Control Pro Mega128
> 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





    Antwort schreiben


Antworten:

Re: Beschleunigung des Lesens von Eingängen (von Jan - 23.04.2013 20:41)