AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Bit invertieren mit Checkbox?

Ein Thema von moelski · begonnen am 30. Jun 2006 · letzter Beitrag vom 30. Jun 2006
Antwort Antwort
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#1

Bit invertieren mit Checkbox?

  Alt 30. Jun 2006, 13:01
Moin !

Ich habe da gerade ein kleines Problem, man könnte auch sagen eine Gehirnblockade, denn es gibt sicher ne ganz einfach Lösung für mein Prob ...

Also, ich progge da gerade an einem kleinen Tool um Mikrocontroller (Atmel) zu programmieren (Flash beschreiben). Nun muss ich dafür immer diverse Leitungen der seriellen Schnittstelle an-/abschalten.
Je nachdem wie man den Adapter dafür aufbaut, muss man die Port Pins aber invertieren. Und da komm ich nicht weiter oder sagen wir mal ich finde keine einfache Lösung.

Also, ich habe da eine Checkbox. Wenn die angehakt ist, dann soll eine Steuerleitung invertiert werden. Bsp:
Im Normalfall setzte ich z.B. RTS(0). Bedeutet die RTS Leitung ist auf logisch 0.
Nun setze ich den Haken. Wenn ich jetzt RTS(0) aufrufe wäre halt die Leitung logisch 1.

Das könnte man nun ja so lösen:
If checkbox.checked = True then RTS(1) else RTS(0)

Aber das ist mir zu aufwändig, denn man muss das ja an zig Stellen einbauen.
Gibt es nicht irgendwie sowas wie ... RTS(0 AND Checkbox.Checked) oder so in der Art? Also irgendeine Logikverknüpfung? Der Input der Procedure RTS ist übrigens Integer.

Hoffe jemand hat da einen Tip ...
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Waldteufel
(Gast)

n/a Beiträge
 
#2

Re: Bit invertieren mit Checkbox?

  Alt 30. Jun 2006, 13:05
not http://de.wikipedia.org/wiki/Einerkomplement
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Bit invertieren mit Checkbox?

  Alt 30. Jun 2006, 13:12
Zitat von Waldteufel:
not ...
Aha,
und was ist 0 not 0
Stephan B.
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Bit invertieren mit Checkbox?

  Alt 30. Jun 2006, 13:16
Moin !

Habs doch noch rausgefunden ...
Die Lösung ist XOR

RTS(0 XOR BoolToInt(Checkbox.checked))
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Benutzerbild von TeronG
TeronG

Registriert seit: 19. Jul 2004
Ort: München
960 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Bit invertieren mit Checkbox?

  Alt 30. Jun 2006, 13:16
Bei einer SPS würde ich sowas wohl mit nem XOR machen ... so wird der Ausgang nur dann invertiert wenn der 2te Eingang high ist quasi n einschltbarer Inverter ^^

edit: misst n tick so langsam
龍 Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie.
  Mit Zitat antworten Zitat
andreash

Registriert seit: 22. Jun 2006
Ort: Dörverden
60 Beiträge
 
Delphi 7 Professional
 
#6

Re: Bit invertieren mit Checkbox?

  Alt 30. Jun 2006, 13:19
Ich würde eine Procedure SetRTS schreiben, die in Abhängigkeit des Zustands der Checkbox die Funktion RTS aufruft.

RTS(0 XOR BoolToInt(Checkbox.checked)) ist äquivalent zu RTS(BoolToInt(Checkbox.checked))
Andreas
Der Optimist glaubt, wir leben in der besten aller möglichen Welten. Der Pessimist befürchtet, daß das stimmt.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz