Bitweiser Zugriff

Bitweiser indizierter Zugriff auf indiziertes Array

  • 1
  • 2
  • Page 2 of 2
grech
Benutzer
Avatar
Gender:
Location: Saarland
Age: 67
Posts: 15
Registered: 10 / 2015
Subject:

Re: Bitweiser Zugriff

 · 
Posted: 01.05.2019 - 15:13  ·  #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
Attachments
Bitweiser Zugriff
Filename: Spieltisch linke seite.jpg
Filesize: 481.07 KB
Title:
Download counter: 113
grech
Benutzer
Avatar
Gender:
Location: Saarland
Age: 67
Posts: 15
Registered: 10 / 2015
Subject:

Re: Bitweiser Zugriff

 · 
Posted: 01.05.2019 - 15:27  ·  #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
Gender:
Age: 24
Posts: 1409
Registered: 03 / 2005
Subject:

Re: Bitweiser Zugriff

 · 
Posted: 01.05.2019 - 16:09  ·  #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
  • Page 2 of 2
Selected quotes for multi-quoting:   0

Registered users in this topic

Currently no registered users in this section

The statistic shows who was online during the last 5 minutes. Updated every 90 seconds.
MySQL Queries: 16 · Cache Hits: 15   66   81 · Page-Gen-Time: 0.025648s · Memory Usage: 2 MB · GZIP: on · Viewport: SMXL-HiDPI