-         

Ergebnis 1 bis 5 von 5

Thema: Einfaches Master Slave Beispiel?

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    14.08.2007
    Ort
    Delmenhorst
    Alter
    32
    Beiträge
    731

    Einfaches Master Slave Beispiel?

    Anzeige

    Hi

    Wär jemand so nett mal ein einfaches Master Slave Beispiel zu posten?
    Also ein Programm(Master) das eine Zahl zum Slave schickt.
    Und ein Programm(Slave) Welches diese Zahl empfängt.
    Ich bekomm das einfach nicht hin.

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    10.08.2007
    Beiträge
    47
    Meinst Du mit Master die Erweiterungskarte M32 bzw. Aehnliches? Dann sind z.B. die I2C Beispiele mitgeliefert.
    Oder sollen sich nur zwei Programme auf einem muC unterhalten? Soweit ich das bisher verstanden habe hat der ATmega32 kein Multitasking. Du muesstest das erst selbst erstellen. Aber dann gibt es immer noch keine zwei verschiedenen Programme, nur zwei Module. Diese koennen natuerlich Daten ueber Variablen austauschen.
    Kannst Du bitte noch etwas mehr Infos zu Deinem Vorhaben geben, dann koennte Dir besser geholfen werden (denke ich).

    mfg
    Kay

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    14.08.2007
    Ort
    Delmenhorst
    Alter
    32
    Beiträge
    731
    Hi

    Ja, Slave ist der RP6 und Master ist die M32 Erweiterungsplatine.
    Und ja, die Beispiele kenn ich, ich kenn auch die Doku doch irgendwie wills nich hinhauen.

    Ich möchte "einfach" vom Master eine 1 senden und dann am Slave empfangen und in einer Variable ablegen.

    Was ich daran dann weiter mache hat damit ja nichts zu tun.

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    14.08.2007
    Ort
    Delmenhorst
    Alter
    32
    Beiträge
    731
    Um nochmal etwas konkreter zu werden, ich benutze dieses Beipsiel für des Controler auf dem Hauptboard:
    Code:
    #include "RP6RobotBaseLib.h"
    #include "RP6I2CslaveTWI.h" // I2C Library Datei einbinden (!!!)
    // ACHTUNG: Das muss auch im Makefile eingetragen werden (!!!)
    #define CMD_SET_LEDS 3 // LED Kommando, das über den I2C Bus
    // empfangen werden soll.
    
    int main(void)
    {
         initRobotBase();
         I2CTWI_initSlave(10); // TWI initialisieren und Adresse 10 einstellen
         powerON();
         while(true)
         {
              // irgendein Kommando empfangen und KEIN Schreibzugriff aktiv?
              if(I2CTWI_writeRegisters[0] && !I2CTWI_writeBusy)
              {
                   // Register speichern:
                   uint8_t cmd = I2CTWI_writeRegisters[0];
                   I2CTWI_writeRegisters[0] = 0; // und zurücksetzen (!!!)
                   uint8_t param = I2CTWI_writeRegisters[1]; // Parameter
    
                   if(cmd == CMD_SET_LEDS) // LED Kommando empfangen?
                   setLEDs(param); // LEDs mit dem Parameter setzen
              }
    
              if(!I2CTWI_readBusy) // Kein Lesezugriff aktiv?
              // Dann aktuellen LED Zustand ins Register 0 schreiben:
              I2CTWI_readRegisters[0] = statusLEDs.byte;
         }
         
    return 0;
    }

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    14.08.2007
    Ort
    Delmenhorst
    Alter
    32
    Beiträge
    731
    So, habs nun nochmal durchgelesen und hinbekommen!
    Trotzdem Danke an alle, die mein Selbstgespräch verfolgt haben

Berechtigungen

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