Einzelnen Beitrag anzeigen

Rads

Registriert seit: 31. Aug 2015
5 Beiträge
 
Delphi XE8 Professional
 
#5

AW: Übersetzung von C nach Delphi (IOCTL)

  Alt 22. Dez 2015, 12:17
Danke schonmal für die Antworten

Zitat:
haste schonmal statt
T.. = Record mit
T... = packed Record probiert?
Ja habe ich..

Zitat:
Also bist du dir sicher, dass die 0 in Data_B überhaupt etwas (merkbares/sichtbares) tut?
...
Nein. ich habe halt probiert. (0 war nur ein Beispiel. weil ich nicht weiß was ich da eingeben muss. Ist in der Dokumentation leider nicht beschrieben.

Zitat:
Oder gibt DeviceIoControl schon einen Fehlercode zurück?
Nein. Die Funktion wird immer erfolgreich ausgeführt. Es fehlt die (richtige) Zuweisung von Pin und Data_B

Zitat:
Eigentlich müsste es so sein, das Data_B ein Port ist. Auf einen Port werden meist 8 IO´s zusammengefasst.
Der Wert den du auf den Port zuweist, stellt in Binärschreibweise dann den Zustand der Pins dar.
Also wenn du dezimal 4 zuweist, ist das binär 0000 0100
und damit TRUE oder 1 an Pin 3.

Um nur einzellne Pins eines Ports unabhängig vom Zustand der restlichen Pins zu schalten, nimmt man eine Bitmaske und verknüpft den aktuellen Wert des Ports mit der Bitmaske und schreibt den Wert dann auf den Port.

Bitmaske für Pin 3 -> 0000 0100
ang. aktueller Zustand Data_B -> 1000 0011
Die beiden mit logisch ODER verknüpft ergibt 1000 0111
Und dies dann wieder auf Data_B zuweisen.
Dann ist Pin 3 gesetzt worden.
ich finde nirgends ein Beispiel
Danke. Ich probier's gleich
  Mit Zitat antworten Zitat