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: |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum