Bitweiser Zugriff

Bitweiser indizierter Zugriff auf indiziertes Array

  • 1
  • 2
  • Seite 2 von 2
grech
Benutzer
Avatar
Geschlecht:
Herkunft: Saarland
Alter: 68
Beiträge: 15
Dabei seit: 10 / 2015
Betreff:

Re: Bitweiser Zugriff

 · 
Gepostet: 01.05.2019 - 15:13 Uhr  ·  #9
Hallo Harry,
danke für deine Ideen.
Das Ausgeben der 1024 LEDs (16 Schieber mit je 8 Ein/Ausgänge hintereinander,
das ganze 8 bit breit) und Einlesen der Taster sind nicht das Problem.
Das Problem ist, dass ich namentliche Adressierung.
Die allermeisten Taster und parallel dazu die LED haben nur Ein/Ausschaltfunktionen.
Daneben gibt es aber auch Tasten mit sehr mächtigen Funktionen.
Die auch an vielen Stellen im Programm gehandelt werden.
Diese Tasten liegen bei jedem Projekt an anderer Stelle sollen aber immer das gleiche bewirken.
Also wird ein Alias benötigt oder die Benennung eine bit-Variable.

Zu meiner Hardware und Software.
XMega256A3U und Profiversion des Compilers.
In BASCOM schreibt man einfach z.B.
Transposer_M1 ALIAS Reg_taste(11).tab_mitte

Dabei ist Reg_Taste das array[1..128] of byte und Tab_Mitte eine Byte-Variable oder Konstante.
rh hatte noch eine Idee es mit Bit-Sets zu probieren.
Das schau ich mir mal an.
Weiß nur von Pascal/Delphi,
dass sets, je nachdem was man damit macht, sehr teuer werden können.

Gruß grech
Der an diesem Beitrag angefügte Anhang ist entweder nur im eingeloggten Zustand sichtbar oder die Berechtigung Deiner Benutzergruppe ist nicht ausreichend.
grech
Benutzer
Avatar
Geschlecht:
Herkunft: Saarland
Alter: 68
Beiträge: 15
Dabei seit: 10 / 2015
Betreff:

Re: Bitweiser Zugriff

 · 
Gepostet: 01.05.2019 - 15:27 Uhr  ·  #10
Hallo Merlin,
deine Idee müsste eigentlich funktionieren.
Ohne dass sie Speicher kostet;
und ohne Rechenzeit, weil die Adressen kann der Compiler ja schon berechnen.
(Anm. Die Berechnung der Adressen nach meiner Schreibweise ist auch nicht komplexer)

Danke.

Ich hatte schon daran gedacht mir für bestimmte Tasten einen Getter zu schreiben.
Wäre nicht aufwendiger in Source-Code aber braucht Rechenzeit und Speicher.

Gruß grech
Merlin
Administrator
Avatar
Geschlecht:
Alter: 25
Beiträge: 1474
Dabei seit: 03 / 2005
Betreff:

Re: Bitweiser Zugriff

 · 
Gepostet: 01.05.2019 - 16:09 Uhr  ·  #11
Talking of getters (and setters) you can also use properties, although, as you say, it is computationally more expensive, but potentially more powerful, and you can always start one way and change to the other way later:

Code
property
  Num_1 : boolean
    read GetNum_1
    write SetNum_1;

//===================================================
{--------------------------------------------------------------}
{ functions }
function GetNum_1 : boolean;
begin
  return( Bit( Reg_tasten[adr_s16_1], num16));
end;

procedure SetNum_1( NewVal : boolean );
begin
  SetBit( Reg_tasten[adr_s16_1], num16, NewVal );
end;

  • 1
  • 2
  • Seite 2 von 2
Gewählte Zitate für Mehrfachzitierung:   0

Registrierte in diesem Topic

Aktuell kein registrierter in diesem Bereich

Die Statistik zeigt, wer in den letzten 5 Minuten online war. Erneuerung alle 90 Sekunden.
MySQL Queries: 15 · Cache Hits: 14   65   79 · Page-Gen-Time: 0.044364s · Speichernutzung: 2 MB · GZIP: ein · Viewport: SMXL-HiDPI