- Labornetzteil AliExpress         
Ergebnis 1 bis 5 von 5

Thema: TWI Slave mit avr-gcc

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Begeisterter Techniker Avatar von Chypsylon
    Registriert seit
    02.02.2011
    Ort
    Graz/Österreich
    Beiträge
    256
    Das gleiche Problem ist schon öfters mit dem Beipsiel aus RN-Wissen aufgetaucht (z.B. bei mir und oberallgeier hier).

    Es wäre vermutlich am einfachsten wenn du auf eine andere Library wie z.B. die von Jtronics zurückgreifst die eigentlich gleich aufgebaut ist...

  2. #2
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.694
    Zitat Zitat von Chypsylon Beitrag anzeigen
    Das gleiche Problem ist schon öfters mit dem Beipsiel aus RN-Wissen aufgetaucht ...
    Wie schon erwähnt (klick hier) läuft bei mir die fleury-Lib hervorragend. Probier mal vor dem repstart bzw. nach dem Schreiben der Buffer-Startadresse ein i2c_stop . . .
    Ciao sagt der JoeamBerg

  3. #3
    Benutzer Stammmitglied Avatar von KR-500
    Registriert seit
    26.12.2007
    Alter
    30
    Beiträge
    91

    Beitrag

    Hallo zusammen,

    dieser Thread ist zwar schon etwas älter, aber ich bin jetzt letztens auch auf das Problem mit dem nicht funktionierenden repeated start gestoßen. Ich bin auf zwei Fehler gestoßen, nach dem beheben dieser Fehler läuft der Slave auch mit dem repeated start bzw. überhaupt. Es wäre schön wenn dies jemand auch im Wiki ändern könnte.

    1.Fehler:
    Code:
    TWAR= (adr << 1); //Adresse setzen um 1 bitshiften wegen TWAR register (siehe Datenblatt!)
    Dies ist so Falsch, wenn man die Adresse um eins nach links shiftet schneidet man ein Bit der Adresse ab, richtig wäre:

    Code:
    TWAR= adr; //Adresse setzen

    2. Fehler:
    Code:
    switch (TW_STATUS) //TWI-Statusregister prüfen und nötige Aktion bestimmen 
        {
    
            ...
    
            case TW_ST_DATA_NACK: // 0xC0 Keine Daten mehr gefordert 
            case TW_SR_DATA_NACK: // 0x88 
            case TW_ST_LAST_DATA: // 0xC8  Last data byte in TWDR has been transmitted (TWEA = “0”); ACK has been received
            case TW_SR_STOP:      // 0xA0 STOP empfangen
            default:     
                TWCR_RESET;
            break;
        } //end.switch (TW_STATUS)
    Laut Datenblatt ist dies der Code für den Empfang einer Stop, bzw einer Repeated Start Bedingung, jetzt bin ich mir nicht mehr so sicher, aber mit dieser Lösung funktioniert es:

    Code:
    switch (TW_STATUS) //TWI-Statusregister prüfen und nötige Aktion bestimmen 
        {
            case TW_SR_STOP:
                TWCR_ACK;
            break;
            ...
    
            case TW_ST_DATA_NACK: // 0xC0 Keine Daten mehr gefordert 
            case TW_SR_DATA_NACK: // 0x88 
            case TW_ST_LAST_DATA: // 0xC8  Last data byte in TWDR has been transmitted (TWEA = “0”); ACK has been received
            default:     
                TWCR_RESET;
            break;
        } //end.switch (TW_STATUS)
    Viele Grüße
    KR-500

  4. #4
    Erfahrener Benutzer Begeisterter Techniker Avatar von Chypsylon
    Registriert seit
    02.02.2011
    Ort
    Graz/Österreich
    Beiträge
    256
    @KR-500: Ist gemacht. Danke für die Lösung

Ähnliche Themen

  1. Slave Transmitter und Slave Receiver Mode
    Von masasibe im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 26.02.2011, 19:55
  2. I2C Slave
    Von Jada im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 1
    Letzter Beitrag: 19.06.2010, 11:47
  3. Slave-Master-Slave übertragung geht nicht
    Von Dämmi im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 16
    Letzter Beitrag: 26.11.2008, 00:08
  4. I2C-Slave
    Von liggi im Forum C - Programmierung (GCC u.a.)
    Antworten: 1
    Letzter Beitrag: 02.01.2008, 16:02
  5. AVR als I²C Slave?
    Von Schokohoernl im Forum Elektronik
    Antworten: 4
    Letzter Beitrag: 28.05.2006, 19:58

Berechtigungen

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

Solar Speicher und Akkus Tests