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)