- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 10 von 16

Thema: I2C Bus "störungssicher" machen

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    25.03.2006
    Ort
    nahe Tulln (Niederösterreich)
    Alter
    33
    Beiträge
    460

    I2C Bus "störungssicher" machen

    Hallo!

    Ich habe Probleme mit dem I2C Bus meiner Terrariusteuerung. Ich messe die Temperatur und die Luftfeuchtigkeit im Terrarium mit digitalen I2C Sensoren. Die Kabellängen sind etwas lang für den I2C Bus, aber ich habe sehr gute geschirmte CAN Buskabeln verwendet, und bei einer sehr langsamen Busfrequenz von 2kHz funktioniert das ganze ca. 5 Minuten lang, manchmal auch 10 oder 15, aber dann bleibt der Controller einfach hängen.

    Das kann schnell zur Katastrophe werden, z.B. wenn die Beregnungsanlage eingeschalten ist. Wenn dann der Controller hängen bleibt läuft sie einfach weiter bis der Wassertank leer ist, und mein Zimmer überflutet ist.

    Ich verwende die I2C Library von Peter Fleury: http://homepage.hispeed.ch/peterfleu...ic2master.html

    Die Sensorwerte frage ich mit dem Befehl "i2c_readAck" ab:

    Code:
    /*************************************************************************
     Read one byte from the I2C device, request more data from device 
     
     Return:  byte read from I2C device
    *************************************************************************/
    unsigned char i2c_readAck(void)
    {
        TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWEA);
        while(!(TWCR & (1<<TWINT)));    
    
        return TWDR;
    
    }
    Ich glaube das Problem ist, dass er durch Busstörungen fehlerhafte Signale bekommt, und dann irgendwie in der Endlosschleif feststeckt.

    Kann man da etwas einbauen dass das Unterprogramm automatisch die Schleife unterbricht und irgendeinen Fehlercode zurückgibt? Wenn alle 5 Minuten mal ein Messwert "verworfen" wird, weil er fehlerhaft ist, ist das vollkommen egal (es wäre sogar egal wenn 9 von 10 verworfen werden würden ), nur darf der Controller nie hängen bleiben.


    lg
    Christoph
    Geändert von Christoph2 (02.04.2012 um 00:02 Uhr)

Ähnliche Themen

  1. Versteckte Ordner wieder "unversteckt" machen
    Von Sebas im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 2
    Letzter Beitrag: 20.09.2011, 15:19
  2. Wie viel Sachen kann ein Atmega 2560 "gleichzeitig" machen
    Von super-robman im Forum Allgemeines zum Thema Roboter / Modellbau
    Antworten: 9
    Letzter Beitrag: 06.09.2011, 15:20
  3. "PIR D203S" was ist das, was kann man damit machen
    Von bnitram im Forum Elektronik
    Antworten: 9
    Letzter Beitrag: 18.04.2011, 15:38
  4. Microstepper "kräftiger" machen ? (geklärt)
    Von PICture im Forum Motoren
    Antworten: 12
    Letzter Beitrag: 09.10.2010, 13:37
  5. ASM: was machen "swap" und "cbr" genau?
    Von RHS im Forum AVR Hardwarethemen
    Antworten: 3
    Letzter Beitrag: 18.08.2004, 17:16

Berechtigungen

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

Labornetzteil AliExpress