- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 3 von 3

Thema: K8055 Digital I/O einzeln Ansteuern? (¿UINT8?)

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    12.05.2007
    Beiträge
    6

    K8055 Digital I/O einzeln Ansteuern? (¿UINT8?)

    Anzeige

    Powerstation Test
    Hallo

    Wie Bereits in einigen anderen Treads erwähnt, experimentiere ich mit
    dem k8055 und x-plane (Flugsimulator). Dies funktioniert auch schon ganz
    gut. Nun habe ich das problem das ich in C++ die Digitalen Ports nicht
    richtig einzeln ansteuern kann. Ich habe gelesen, dass der Wert in UINT8
    angegeben wird. allerdings werde ich aus diesem Wert nicht schlau. MIt
    ReadDigitalChannel(1) kann ich immer den ersten Kanal abfragen, das
    funktioniert. MIt ReadDigitalChannel(2) kann ich den 2 Kanal aber nicht
    ansprechen. Ich habs binär Probiert DigitalChannel(01000000) und Hex
    DigitalChannel(40) leider auch vergeblich. Kann mir jemand sagen, wie
    ich die Ports einzeln ansteuern kann?

    mfg

    sascha

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    12.05.2007
    Beiträge
    6
    Ich habs raus. Zumindest mit ReadAllDigital(). Es handelt sich um einen
    5 Stelligen Binärwert, dr haber vorher noch in hex umgerechnet werden
    muss.

    bin: 00001 hex:1 kanal:1
    bin: 00010 hex:2 kanal:2
    bin: 00100 hex:4 kanal:3
    bin: 01000 hex:8 kanal:4
    bin: 10000 hex:10 kanal:5

    womit ich in c++ mit if(ReadAllDigital() == 4) kanal 3 auslese.
    wie ich mit ReadDigitalChanel() gezielt einzelne Kanäle auslese weiss
    ich allerdings immer noch nicht. ist auch nicht mer wichtig,
    funktioniert ja auch mit ReadAllDigital(), hätte aber für das Verstädnis
    der Karte geholfen.

    mfg

    sascha

  3. #3
    Erfahrener Benutzer Roboter Genie Avatar von robocat
    Registriert seit
    18.07.2006
    Beiträge
    935
    hi elvis,

    habe von C++ wenig ahnung, aber du verwendest ja die mitgelieferte library. ReadAllDigital() liefert dir einen wert (ausgabe dezimal, im rechner is aber ja alles binär). soweit ich weiß, gibt es 8 ports oder?

    binär geht so:
    00000001 =1 = kanal 1 gesetzt
    00000010 = 2 = kanal 2 gesetzt
    00000011 = 3 = kanal 1+2 gesetzt
    00000100 = 4 = kanal 3 gesetzt
    00000101 = 5 = kanal 1+3 gesetzt
    ...

    du rechnest also beim letzten wert: 2 hoch 2 + 2 hoch 0 (das ist 4+1) =5.

    10000001 ist also 2 hoch 7 + 2 hoch 0. das ist 129. also: 2 hoch (stelle einer 1) wobei die erste stelle 0 ist, die letzte (bei 8 bit) 7.

    grösste darstellbare zahl ist damit (8bit) 128+64+32+16+8+4+2+1 (binär ist das dann 11111111) ist 255.

    sagen wir du bekommst ein 123. das ist dann 64 (128 wär möglich aber is ja schon zu groß) + 32 (dann sinds 96) + 16 (->112) + 8 (->120) + 2 (4 wäre schon zuviel, wären dann ja 124 - so sinds 122) + 1 = (schwupp) 123.

    dein binärcode wäre damit 01111011. port 8 und port 3 sind also 0, alle anderen gesetzt.

    hilft?

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test