- Labornetzteil AliExpress         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11

Thema: I2C-Bus übertragung!

  1. #1
    Gast

    I2C-Bus übertragung!

    Anzeige

    Praxistest und DIY Projekte
    Habe ein sehr großes problem!
    ich muss von meinem master aus eingeben können: adresse, anzahl der folgenden daten, und die daten

    dies sollte ich an die slaves schicken können und auch wieder empfangen können...

    hat das schon wer programmiert???

    bitte um schnelle hilfe! julia

  2. #2
    Neuer Benutzer Öfters hier
    Registriert seit
    14.12.2005
    Beiträge
    8

    Re: I2C-Bus übertragung!

    ach ja es handelt sich um einen pic16f877

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.10.2004
    Ort
    Nordschwarzwald
    Alter
    41
    Beiträge
    506
    Programmierst du in C oder Assembler?
    I2C-Befehlssatz findest du in der Wiki (brauchst nur auf das I2C hier klicken).
    Beim PIC musst du nur wenige Register konfigurieren, denn der hat Hardware-I2C-Unterstützung, die auch recht gut im Datenblatt erklärt ist.

  4. #4
    Neuer Benutzer Öfters hier
    Registriert seit
    14.12.2005
    Beiträge
    8

    Re: I2C-Bus übertragung!

    kann mir denn keiner helfen???? ist wirklich wichtig... bitte!!

  5. #5
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.10.2004
    Ort
    Nordschwarzwald
    Alter
    41
    Beiträge
    506
    ähm - Ich kann dir nur helfen, wenn du ein paar mehr Infos gibst, z.B. in welcher Sprache du programmierst oder ob du dich mit I2C selber auskennst und nur wissen willst, wie man das dem PIC beibringt, oder bei welcher Taktfrequenz du schaffen willst...

    Ich mein, ich helf dir gerne, aber dazu musst du mitarbeiten

    mfG
    Stefan

  6. #6
    Neuer Benutzer Öfters hier
    Registriert seit
    14.12.2005
    Beiträge
    8
    programmiere in c
    mit I2C kenn ich mich nicht aus!
    müsste ein prog schreiben, bei dem ich angeben kann, welchen slave ich ansprechen möchte, also zb. 0x02 dann die anzahl der daten zb 5 und dann die daten
    also: 0x025ABCD
    slave und master sollten dadurch kommunizieren können.
    19200 baud

  7. #7
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    09.08.2004
    Ort
    Wien
    Alter
    39
    Beiträge
    208
    Hiho,

    also hier is mal eine seite, wo es um PIC und I2C geht:
    http://www.fernando-heitor.de/picfor...&highlight=i2c

    Weiteres benütze ich folgenden Code:
    Code:
    void init_i2c()
    {
      output_float(I2C_SCL);
      output_float(I2C_SDA);
    }
    
    //Schreiben von einem Byte über I2C
    void write_i2c(Byte address, BYTE data, int c_nr)
    {
      short int status;
    
      i2c_start();          //Belegen des Buses
      i2c_write(0xfe & c_nr);  //schreiben der Deviceadresse
      i2c_write(address);   //Datenadresse
      i2c_write(data);	     //1 Byte Daten
      i2c_stop();           //Busfreigabe
    
      //Warten bis die Daten verarbeitet und Gerät wieder bereit
      i2c_start();
      status=i2c_write(c_nr);
      //Statusabfrage, 0-Gerät reagiert, 1-Gerät reagiert nicht
      while(status==1) //Warten bis es reagiert
      {
        i2c_start();
        status=i2c_write(0xa0 | c_nr);
      }
      i2c_stop();
    }
    
    BYTE read_i2c(Byte address, int c_nr) //Lesen eines Bytes
    {
      BYTE data;
    
      i2c_start();          //Belegen des Buses
      i2c_write(0xfe & c_nr);  //schreiben der Deviceadresse
      i2c_write(address);   //Datenadresse
    
      i2c_start();          //Restarten des Buses
      i2c_write(0xa1 | c_nr);	//1 steht für Lesezugriff
      data=i2c_read(0);	//1 Byte lesen
      i2c_stop();			//Freigeben des Buses
    
      return(data);
    }
    Damit habe ich erfolgreich auf ein I2C EEprom gespeichert, also funkt es mal, dass ein PIC antwortete, an dem spiele ich mich auch gerade.
    Weiteres bastle ich an einer funktion, wo man mehrere Daten lesen/schreiben kann, aber die funktionieren nicht.

    hoffe es hat dir geholfen
    keine leere Signatur möglich

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    15.10.2004
    Ort
    Nordschwarzwald
    Alter
    41
    Beiträge
    506
    Ansonsten wirst du wohl bei (fast allen) C-Compilern schon fertige Bibliotheken finden, mit denen du I2C ansteuern kannst...

    Was ich dir empfehlen würde: Klick mal auf das I2C - da findest du einiges an Infos - denn es bringt dir nix, wenn du irgendwas übernimmst, aber nicht weisst, warum und wie es funktioniert.

    MfG
    Stefan

  9. #9
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    09.08.2004
    Ort
    Wien
    Alter
    39
    Beiträge
    208
    Hiho,

    ja, soll mal denkanstoss sein
    ausserdem besitzt auch jeder Compiler beispiele, ich denke, dass jeder ein I2C Beispiel zur verfügung stellt.

    wenn wir dabei sind ich verwende CCS Compiler, und möchte gerne einen text z.B. "Hallo" auf ein I2C EEPROM speichern, lesen klappt fehlerfrei, aber beim senden werde ich es schrittweiße machen, aber wie bekomme ich zB Das 'H' von 'Hallo' in den HEX Code gewandelt? hab schon gesucht, aber leider nur i-net rechner gefunden
    keine leere Signatur möglich

  10. #10
    Neuer Benutzer
    Registriert seit
    17.06.2005
    Ort
    Linz-Steyr
    Alter
    37
    Beiträge
    1
    Gott zum gruße

    Die buchstaben im string werden sowieso im ascii format abgelegt, also musst du nur eine for-schleife ablaufen lassen und die einzelnen werte des char arrays seriell ans eeprom senden

Seite 1 von 2 12 LetzteLetzte

Benutzer, die dieses Thema gelesen haben: 0

Derzeit gibt es keine Benutzer zum Anzeigen.

Berechtigungen

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

12V Akku bauen