Extending toggle procedure to boolean

  • 1
  • 2
  • 3
  • Seite 1 von 3
Merlin
Administrator
Avatar
Geschlecht:
Alter: 25
Beiträge: 1474
Dabei seit: 03 / 2005
Betreff:

Extending toggle procedure to boolean

 · 
Gepostet: 06.03.2019 - 12:12 Uhr  ·  #1
Toggle( x ) applies to byte, bits and bitfields. Other structures including boolean are prohibited. I would like to see toggle( boolean ) implemented. I would be happy for it to be identical to toggle(byte).
Lschreyer
Schreiberling
Avatar
Geschlecht: keine Angabe
Beiträge: 527
Dabei seit: 02 / 2007
Betreff:

Re: Extending toggle procedure to boolean

 · 
Gepostet: 13.03.2019 - 09:45 Uhr  ·  #2
I wrote a

procedure toggleb(b: Boolean);
begin
if b then
b:=false;
else
b:=true;
endif;
end;

to do just that :-)
rh
Administrator
Avatar
Geschlecht:
Herkunft: Germany
Alter: 25
Homepage: e-lab.de
Beiträge: 5558
Dabei seit: 03 / 2002
Betreff:

Re: Extending toggle procedure to boolean

 · 
Gepostet: 13.03.2019 - 14:05 Uhr  ·  #3
Oder
b:= Not b;

Aber was solls. Toggle(boolean) ist jetzt implementiert!
Sie readme File
rolf
Gunter
Administrator
Avatar
Geschlecht:
Herkunft: Frankfurt Main / Germany
Beiträge: 1697
Dabei seit: 02 / 2003
Betreff:

Re: Extending toggle procedure to boolean

 · 
Gepostet: 13.03.2019 - 17:34 Uhr  ·  #4
oder letztlich nix weiter als ein
b := b XOR $FF

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

Re: Extending toggle procedure to boolean

 · 
Gepostet: 30.04.2019 - 14:33 Uhr  ·  #5
Hi Gunter.

I wasn't meaning to ask to toggle byte - I thought that was already there (I misread the manual).

Often I have something like

Code
var
MyVar[@MyByte, 3] : bit


and then in several places

Code

Toggle(MyVar);


I had occasion to redefine my bits as boolean by redefining MyVar as
Code
var
MyVar : boolean


For the most part that was all I needed to do, because largely bit and boolean are treated the same, but

Code

Toggle(MyVar);


was not valid. Hence my request.
rh
Administrator
Avatar
Geschlecht:
Herkunft: Germany
Alter: 25
Homepage: e-lab.de
Beiträge: 5558
Dabei seit: 03 / 2002
Betreff:

Re: Extending toggle procedure to boolean

 · 
Gepostet: 30.04.2019 - 14:58 Uhr  ·  #6
Hello Merlin
a BIT is handled more as a Funktion than a simple VAR. This makes it impossible for using the toggle Funktion.
rolf
Merlin
Administrator
Avatar
Geschlecht:
Alter: 25
Beiträge: 1474
Dabei seit: 03 / 2005
Betreff:

Re: Extending toggle procedure to boolean

 · 
Gepostet: 30.04.2019 - 16:35 Uhr  ·  #7
Hello Rolf.

Sorry, I don't understand. I use toggle with bits all the time.

E.g. from actual code:

Code
var
  External_Watchdog [ @PortG, 4 ] : bit;

...

  Toggle( External_Watchdog );




Ahhh... you mean the BIT( var, n) function. No I did not mean that.
Harry
Moderator
Avatar
Geschlecht:
Herkunft: zwischen Augsburg und Ulm
Alter: 60
Beiträge: 2155
Dabei seit: 03 / 2003
Betreff:

Re: Extending toggle procedure to boolean

 · 
Gepostet: 10.05.2019 - 22:43 Uhr  ·  #8
Hi Rolf,

ich hab grad eben
Code

    If DispInvDo=true
      then
        DispInvDo:=false;
        Toggle(DispInv);
        SetMode(DispInv);
      EndIf;

getestet und es funktioniert nicht.

So geht es aber:
Code

    If DispInvDo=true
      then
        DispInvDo:=false;
        If DispInv=true
          then
            DispInv:=false;
          else
            DispInv:=true;
          EndIf;
        SetMode(DispInv);
      EndIf;


Mit deinem, wie oben geschrieben
Code

DispInv:=not DispInv;

funktioniert es auch.

XMega256A3U
Version 5.10.01

Gruss
Harry
  • 1
  • 2
  • 3
  • Seite 1 von 3
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   137   151 · Page-Gen-Time: 0.036062s · Speichernutzung: 2 MB · GZIP: ein · Viewport: SMXL-HiDPI