- LiFePO4 Speicher Test         
Ergebnis 1 bis 10 von 11

Thema: Master-Slave-Problem

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    26.12.2008
    Beiträge
    7
    ok, deine Argumente überzeugen mich SlyD. Ich habe mich gerade nochmal daran versucht (jetzt mit dem RP6-M32 als Master und dem RP6-Base als Slave) und ich habe es endlich geschafft. \/ *freu*
    Vielen Dank für eure Mühen. Jedoch bin ich mir sicher, dass sich noch weitere Fragen diesbezüglich bei mir aufdecken werden.
    Nochmals besten Dank!

    XAro

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied Avatar von Filou89
    Registriert seit
    24.12.2010
    Ort
    Thun, Switzerland
    Alter
    35
    Beiträge
    116
    Hallo zusammen,
    der Thread ist zwar schon etwas älter. Ich beschäftige mich auch gerade mit dem Master / Slave "Problem". M32 ist Master und die Base ist Slave.
    Iht habt geschrieben, dass man dieselben Befehle nun im M32-Programm verwenden kann wie in der Base.
    Wie kann man beispielsweise die Batteriespannung auslesen und auf dem Display anzeigen lassen?
    Ich hoffe, ihr wisst eine praktische Lösung.
    Vielen Dank,
    MfG
    Filou
    Geändert von Filou89 (18.07.2011 um 20:20 Uhr)

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.05.2009
    Ort
    Berlin
    Beiträge
    450
    Du benutzt den I2C Bus und liesst den Register 21 von der BASE aus.

    Code:
    I2CTWI_transmitByte(I2C_RP6_BASE_ADR, 21); 
    I2CTWI_readBytes(I2C_RP6_BASE_ADR, basubat, 2);
    mußt mal in den Beispielen gucken, irgendwo da steht das. Auch die Ausgabe auf dem Display findest Du da.
    mfg TrainMen

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von Dirk
    Registriert seit
    30.04.2004
    Ort
    NRW
    Beiträge
    3.803
    @Filou:
    Wenn du in der Base das RP6Base_I2CSlave Programm hast, kannst du auf der M32 die Batteriespannung z.B. so lesen:
    I2CTWI_transmitByte(I2C_RP6_BASE_ADR,I2C_REG_ADC_U BAT_L);
    I2CTWI_readBytes(I2C_RP6_BASE_ADR, readBuf, 2);
    adcBat = (readBuf[1] << 8 ) | (readBuf[0]);
    Der ADC-Wert steht danach in adcBat.

    Wenn du einen eigenen Slave für die Base geschrieben hast, sieht das evtl. anders aus.
    Gruß
    Dirk

  5. #5
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    22.05.2009
    Ort
    Berlin
    Beiträge
    450
    Übrigens, ich bin natürlich auch davon ausgegangen das auf der der Base das RP6Base_I2CSlave läuft und dann kannst du auf der M32 die Batteriespannung z.B. so lesen:

    Code:
    uint8_t basubat[2]; 
    uint16_t basubatges; 
       // I2C, Einlesen der Daten von der Base. Register 21
     I2CTWI_transmitByte(I2C_RP6_BASE_ADR, 21); 
     I2CTWI_readBytes(I2C_RP6_BASE_ADR, basubat, 2); 
     basubatges = basubat[0] + (basubat[1]<<8); 
     // Display Ausgabe der Basis Spannung
     setCursorPosLCD(1, 0);
     writeStringLCD_P("-Spannungswerte-");
     setCursorPosLCD(2, 0);
     writeStringLCD_P("Basis :  ");
     writeIntegerLengthLCD((((basubatges/102.4f)+0.1f)), DEC, 2); 
     writeStringLCD_P(".");
     writeIntegerLengthLCD((((basubatges/1.024f)+10)), DEC, 2); 
     writeStringLCD_P(" V");
    mfg TrainMen

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress