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

Thema: FM-Radio mit Arduino Pro Mini und Si4703 - Programm hängt sich auf!

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.242
    Ob es am Controller oder der Peripherie liegt lässt sich relativ einfach feststellen.
    Aktiviere den Watchdog Timer des Controllers und mach im Main Loop den WDR ( Watchdog Reset ) befehl rein.
    Bleibt die Peripherie hängen, wird der Controller nicht resettet und der Fehler wird wie beschrieben auftreten.

    Liegt der Fehler im Controller wird der Watchdog zuschlagen und den Controller resetten.

    Ein möglicher Fehler wäre z.B. das der Controller in einer Subroutine auf irgendwas wartet, das dann nicht kommt ( Quittung vom I²C z.B. ).
    Oder ein IC blockiert den I²C Bus.
    Das könnte man so lösen, das man da, wo eine Quittung erwartet wird einen Timer aktiviert.
    Wenn das Ganze zu lange dauert die Subroutine abgebrochen wird und an die aufrufende Routine eine negative Quittung zurück gegeben wird.
    Dort kann man dann eine Fehlerbehandlung durchführen.

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied Avatar von basteluwe
    Registriert seit
    15.11.2012
    Beiträge
    131
    Vielen Dank für die Antwort
    Zitat Zitat von wkrug Beitrag anzeigen
    Liegt der Fehler im Controller wird der Watchdog zuschlagen und den Controller resetten.
    Das bedeutet sicher, falls der Watchdog zuschlägt, beginnt das Programm wieder bei 0, also mit den voreingestellten Variablen aus dem Setup?

    Gruß Uwe

  3. #3
    Erfahrener Benutzer Roboter-Spezialist Avatar von sast
    Registriert seit
    30.11.2004
    Alter
    54
    Beiträge
    502
    I2C hat PullUps?

    sast

    雅思特史特芬
    开发及研究

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.242
    Das bedeutet sicher, falls der Watchdog zuschlägt, beginnt das Programm wieder bei 0, also mit den voreingestellten Variablen aus dem Setup?
    So ist es.
    Allerdings sollte im Programm die Peripherie dann Resettet werden.
    Über ein Register ( MCUSR ) kann man feststellen, durch was der Reset ausgelöst wurde und dementsprechend die Initialisierungen anpassen.
    Die Pullups für I²C gehören natürlich auch mit rein.

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied Avatar von basteluwe
    Registriert seit
    15.11.2012
    Beiträge
    131
    Zitat Zitat von wkrug Beitrag anzeigen
    Die Pullups für I²C gehören natürlich auch mit rein.
    Wenn mit den Pullups externe Widerstände an A4 und A5 (SDA & SCL) des Arduino gemeint sind, dann gibt es die bisher bei mir nicht! Die Schaltung im ersten Post zeigt die aktuelle Situation.
    Ich lese, daß bei 5V Vcc 4,7k als Pullup OK sind. Ich habe ja aber nur die 3,3V Version. Dann sollte wohl 3,3kOhm besser sein, oder?


    Gruß Uwe

  6. #6
    Erfahrener Benutzer Robotik Visionär Avatar von oberallgeier
    Registriert seit
    01.09.2007
    Ort
    Oberallgäu
    Beiträge
    8.698
    .. externe Widerstände an A4 und A5 (SDA & SCL) .. gibt es die bisher bei mir nicht .. bei 5V Vcc 4,7k .. die 3,3V Version .. 3,3kOhm besser sein, oder ..
    Wie fast immer hilft ein passendes Datenblatt. Beispielsweise dies hier, auf Seite 42. Anmerkung: ich habe bei 1,5 m (ein + einhalb Meter) Leitungslänge zu vier Slaves sogar 1,1 kΩ. Ausserdem hilft auch ein Oszilloskop und die kritische Betrachtung der Peaks - oder Nicht-Peaks *gg* bei der jeweils eingestellten Übertragungsrate (kann man die I²C-Frequenz bei arduion denn überhaupt festlegen?).
    Geändert von oberallgeier (14.02.2018 um 18:04 Uhr) Grund: Oh weh, Volt mit Kiloohm verwechselt :-/
    Ciao sagt der JoeamBerg

  7. #7
    HaWe
    Gast
    Zitat Zitat von oberallgeier Beitrag anzeigen
    Wie fast immer hilft ein passendes Datenblatt. Beispielsweise dies hier, auf Seite 42. Anmerkung: ich habe bei 1,5 m (ein + einhalb Meter) Leitungslänge zu vier Slaves sogar 1,1 kΩ. Ausserdem hilft auch ein Oszilloskop und die kritische Betrachtung der Peaks - oder Nicht-Peaks *gg* bei der jeweils eingestellten Übertragungsrate (kann man die I²C-Frequenz bei arduion denn überhaupt festlegen?).
    Die Arduinos funktionieren im Allgemeinen perfekt mit Pullups zwischen 1,4k bis 10kOhm.
    Der ArduinoMega (5V) hat z.B. 10k Pullups fest eingebaut, der Arduino Due (3.3V) 1,47 k; beide funktionieren für I2C clock von 100kHz bis 1MHz
    Zum Vergleich:
    Der Raspberry Pi (3.3V) hat fest eingebaute Pullups von 1.8k, ebenfalls für I2C clock von 100kHz bis 1MHz (ggf. sogar noch schneller, nicht getestet)

    2.2k bis 4.7k sind also sicher immer ein guter Mittelwert.

Ähnliche Themen

  1. Unit 1.2 hängt sich auf
    Von Billy51 im Forum Open Source Software Projekte
    Antworten: 0
    Letzter Beitrag: 06.03.2011, 12:52
  2. Timer hängt sich auf?
    Von Ineedhelp im Forum C - Programmierung (GCC u.a.)
    Antworten: 15
    Letzter Beitrag: 22.08.2008, 16:49
  3. Programm hängt sich auf
    Von martin66119 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 5
    Letzter Beitrag: 07.10.2007, 21:06
  4. LCD hängt sich auf
    Von hotijack im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 30.05.2007, 16:47
  5. Lade Programm geht nicht (hängt sich auf)
    Von REX im Forum Robby CCRP5
    Antworten: 1
    Letzter Beitrag: 11.09.2004, 04:19

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress