Forum: Mikrocontroller und Digitale Elektronik Datenauswertung I2C Slave


von Dani (Gast)


Lesenswert?

Hallo Zusammen,

Vor einem Monat habe ich meine Abschlussarbeit begonnen und die 
Aufgabenstellung für mich war, die Kommunikation zwischen ein Master und 
verschiedene Slaves aufzubauen. Der Master soll die einzelne Slaves 
auswählen können, danach die einzelne PWM- Kanäle der Slaves auswählen 
und zum Schluss das PWM verhältnis ändern.

Als ich damit begonnen habe, hatte ich 0 Erfahrung mit I2C was aber dank 
eure(vor allem "Spess") Hilfe jetzt etwas anders aussieht. Nun habe ich 
noch eine Woche und stehe wieder vor ein Problem und brauche eure Hilfe.

Die Kommunikation zwischen Master und Slaves funktionieren und die 
einzelne Slaves können auch ausgewählt werden. Allerdings tue ich mir 
schwer über Master die einzelne Kanäle des Slaves anzuprechen und das 
PWM verhältnis zu ändern.

Prog:
      Slave Datenauswertung:

      if(TWCR & (1<<TWINT))
      {
        switch(TW_STATUS)// check status register        {
            case 0x60:// SLA+W has been received           TWACK;// send 
ACK               break;

            case 0x80:  //a byte was received
            data = TWDR;
            TWACK;
            break;

            case 0xA0: //Stop or rep start, reset state
            TWACK;
            break;
         }
      }

      switch (data)
      {
        case 0x02:
        pwm_channel();
        break;
      }


mache ich hier bei der Auswertung was falsch? kann mir jem. Helfen?

Danke

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.