-         

Ergebnis 1 bis 6 von 6

Thema: Fragen zum I2C und zum Beispielprogramm

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.05.2009
    Ort
    Berlin
    Beiträge
    450

    Fragen zum I2C und zum Beispielprogramm

    Anzeige

    Im Beispielprogramm RP6Base_I2CMaster_02 wird mit
    #define PCF8574_8LEDS_ADR 0x70
    der Chip angesprochen. Vorraussetzung ist doch das der Chip (Basisadresse 64 [0100]) und die Adressleitung A2 und A1 an VCC und A0 an GND liegen. Ist das richtig ?

    Ich habe jetzt hier den PCF8574AP der hat die Basisadresse 112 [0111] und A2-A0 sind auf GND also wäre dann #define PCF8574AP_8LEDS_ADR 0112 richtig ?

    irgendwas verstehe ich doch hier falsch denn mit
    #define PCF8591_4LDRS_ADR 0x90
    wird der Chip2 angesprochen. Die Basis hat aber schon 144 [1001]

    wo ist mein Denkfehler ?

    by TrainMen

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.791
    Hallo TrainMen,

    1. PCF 8574:
    Der hat die Adresse binär 0100CBA0.
    Dabei ist:
    A = A0
    B = A1
    C = A2

    2. PCF 8574A:
    Der hat die Adresse binär 0111CBA0.
    Damit bezieht sich die Definition PCF8574_8LEDS_ADR 0x70 in der Demo wohl auf einen PCF 8574A, bei dem A0..A2 auf GND liegen.

    3. PCF 8591:
    Der hat die Adresse binär 1001CBAR.
    Dabei ist:
    R = R/W-Bit
    Damit bezieht sich die Definition PCF8591_4LDRS_ADR 0x90 in der 2. Demo auf einen PCF 8591, bei dem auch A0..A2 auf GND liegen.

    Klarer?

    Gruß Dirk

    P.S.: Die Basisadresse eines PCF 8574 wäre also 0x40, ok?

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.05.2009
    Ort
    Berlin
    Beiträge
    450
    Hi,
    nix ist klarer,
    wo nimmst Du denn das her "0x40" ?? was rechnest du da um ?
    und zu 3
    die Adresse wäre dann binär 10010000

    ist das hier ein Sch..

    by Trainmen

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.791
    Hallo TrainMen,
    ... wo nimmst Du denn das her "0x40" ?
    Kennst du dich mit den verschiedenen Arten der Zahlendarstellung aus?

    Binär: 01000000 = Hexadezimal: 0x40
    Binär: 01110000 = Hexadezimal: 0x70
    Binär: 10010000 = Hexadezimal: 0x90

    Du kannst die Hex-Zahlen als 2x 4 Bit darstellen:
    Binär: 0000 = Hex: 0x0 = Dezimal: 0
    Binär: 0001 = Hex: 0x1
    Binär: 0010 = Hex: 0x2
    Binär: 0011 = Hex: 0x3
    Binär: 0100 = Hex: 0x4
    Binär: 0101 = Hex: 0x5
    Binär: 0110 = Hex: 0x6
    Binär: 0111 = Hex: 0x7
    Binär: 1000 = Hex: 0x8
    Binär: 1001 = Hex: 0x9
    Binär: 1010 = Hex: 0xA = Dezimal: 10
    Binär: 1011 = Hex: 0xB
    Binär: 1100 = Hex: 0xC
    Binär: 1101 = Hex: 0xD
    Binär: 1110 = Hex: 0xE
    Binär: 1111 = Hex: 0xF = Dezimal: 15

    Wenn du dann 8 Bit (1 Byte) hast, besteht das aus 2 Nibbles (= 4 Bit). Für die Hex-Zahl kannst du sie so zusammen setzen.
    Der Binärwert 10101100 wäre dann also: 0xAC

    Gruß Dirk

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.05.2009
    Ort
    Berlin
    Beiträge
    450
    hi,
    aha, nun ist das schon klarer und mein Denkfehler war das ich mal von dezimal und mal von binär ausging.
    vielleicht sollte ich in meinen alter lieber mit Briefmarken anfangen als mit diesen sachen hier

    by Trainmen

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    29
    Beiträge
    4.544
    Ich weiß zwar nicht wie alt du bist, aber wenn man sich dafür interresiert, ist man nie zu alt. Solche Dinge muss man als Kind genauso lernen, wie ein Pensionist, wenn man sich damit beschäftigen will

Berechtigungen

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