- MultiPlus Wechselrichter Insel und Nulleinspeisung Conrad         
Ergebnis 1 bis 10 von 11

Thema: Summensignal auslesen funzt nur mit Timer0, nicht mit Timer2!?

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    32
    Beiträge
    1.578
    Hallo,

    im DB habe ich mir schon die meisten Dinge zu den Timern durchgelesen, habe jedoch nichts relevantes gesehen! Hast du einen Tip, wo ich nachsehen sollte?
    Morgen Abend werde ich mal versuchen, die Timer über die Register zu konfigurieren. Mal sehen...
    Da ich unbedingt fliegen wollte, habe ich heute kurzerhand die 2 Verbindungen vom uC zu den ESC unterbrochen und jeweils ein Kabel direkt vom uC zum ESC verlegt. Jetzt verwende ich den ersten Code, d.h. Timer0 liest das Signal ein und Timer2 generiert die PWMs. Trotzdem möchte ich gerne wissen, warums anders rum nicht funktioniert!

    Gruß & Vielen Dank
    Chris

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    Zitat Zitat von Che Guevara Beitrag anzeigen
    Trotzdem möchte ich gerne wissen, warums anders rum nicht funktioniert!
    Die Register sind richtig gesetzt, Timer laufen also und Interrupts werden auch ausgelöst, und das in beiden Versionen, im Simulator ist kein Fehler zu entdecken. Ich würde ein HW-Problem vermuten, denn Timer0 hat keine Auswirkung auf Timer2.

    Ist denn gewährleistet, daß die PWM von Timer0 ok ist ? Um systematisch vorzugehen würde man erst einmal die Pins PD5..6 in einer Delayloop toggeln. Wenn das geht, den nichtfunktionierenden Code auf das absolute Minimum reduzieren, also Config der Timer, und einen freien Pin in der Pausedetect-ISR toggeln, um auch deren Funktion zu überprüfen.

    Wenn ein Oszi vorhanden ist, gut, wenn nicht, dann zeigen normale Multimeter üblicherweise eine Spannung entsprechend des Taktgrades an.

    Ab Bascom 2.0.7.1 ist übrigens die Wirkung von ... = Clear Down genau gegenläufig und entspricht nun den Angaben in den Atmel-Datenblättern. Da es jedoch sehr unwahrscheinlich ist, daß die gezeigten Codes mit unterschiedlichen Versionen compiliert wurden, sollte das nicht das Problem sein.

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    32
    Beiträge
    1.578
    Hallo,

    PWM funktioniert von allen 3 Timern richtig! Oszi ist vorhanden, mit diesem habe ich auch schon die Funktionstüchtigkeit der PWMs überprüft.
    Ich habe leider momentan keine Vermutung, wo das Problem liegen könnte. Werd aber heute Abend mal ein paar Tests durchführen.

    Gruß
    Chris

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    Zitat Zitat von Che Guevara Beitrag anzeigen
    PWM funktioniert von allen 3 Timern richtig! Oszi ist vorhanden, mit diesem habe ich auch schon die Funktionstüchtigkeit der PWMs überprüft.
    Nachdem ich die Timer alle 3 im AVR-Studio laufen sehe (zum Testen die Prescaler verkleinert) und auch der Interrupt auf Pausedetect richtig kommt, bleiben nicht so viele Möglichkeiten über.

    Voraussetzung ist, daß der nichtfunktionierende Code gegenüber dem Funktionierenden nur im Bereich der Timer-Config, bzw. Zuweisung der Arrayelemente _bl 4,2 verändert wurde und sich keine weiteren versteckten Zugriffe auf den Timer im Code versteckt halten.
    Fand beim Drübersehen zumindest keine.

    Eine Fehlermöglichkeit wäre sicher eine ältere Bascom-Version, die Timer2 nicht richtig setzt. Was für eine Version wird genutzt ? Ich kann an der erzeugte .hex-Datei erkennen, ob da was falsch gesetzt wird, kannst ja mal anhängen.

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    32
    Beiträge
    1.578
    Die Codes sind bis auf die Timer-Configs komplett gleich. Die Timer-Anweisungen kommen nur in Pausedetect und in Measure vor.
    Bascom Version ist die 1.11.9.5. Hex File ist im Anhand, danke

    Gruß
    Chris
    Angehängte Dateien Angehängte Dateien

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    01.10.2009
    Beiträge
    437
    Also Timer2 in dem Hex läuft, die Register sind ordentlich gesetzt und die ISR wird aufgerufen, wenn ich das I-Flag im SREG manuell setze. Bis zum Enable Interrupts geht die Simulation nicht, denn die Waits blockieren, später auch noch das I2C, ohne I2C-HW geht da nicht viel.

    Ich kann mir immer noch vorstellen, daß es ein HW-Problem ist, denn die Timer beeinflussen sich intern nicht, außer einer schreibt dem anderen die Register kaputt, da muss aber zusätzlicher Code im Spiel sein. Kommentier' doch mal den Timer0 als PWM aus und setz' OC0A..B auf Ausgang und 1, oder toggle OC0A..B in der Mainloop.

    Anbei ein per 2.0.7.0 kompiliertes Hex, sollte das laufen, wird's Zeit für ein Update.
    Angehängte Dateien Angehängte Dateien

  7. #7
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    08.09.2007
    Ort
    Berlin
    Alter
    32
    Beiträge
    1.578
    Erstmal danke fürs drüberschauen Aber eine Frage hätte ich: Wie kannst du überprüfen, ob das Hex file korrekt ist?
    Ein HW-Problem kann ich ausschließen, den wenn ich Timer0 (als PWM) auskommentiere, funzt Timer2 ... PWM von Timer0 funzt auch, wenn ich z.b. fest vorgebene Werte in die Register schreibe (PWM0a und PWM0b) werden diese korrekt ausgegeben (mit dem Oszi und Motoren überprüft). Lediglich beide Timer zusammen (Timer0 als PWM; Timer2 fürs Summensignal) funktionieren nicht.
    Das Hex File werde ich morgen Abend mal draufspielen, werde dann berichten, obs geklappt hat. Vielen Dank schonmal.

    Gruß
    Chris

Ähnliche Themen

  1. PWM mit ATMEGA644p mit timer0, timer1 und timer2
    Von lebratmaxe im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 29.07.2010, 18:42
  2. Atmega128, Timer2 als PWM mag nicht
    Von Felix H. im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 2
    Letzter Beitrag: 16.07.2010, 13:35
  3. Timer2 (Uhrenquarz) und Timer0 PWM vertragen sich nicht
    Von Marten83 im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 23.04.2009, 12:41
  4. Timer0 oder Timer2 benutzen, aber wie?
    Von H3llGhost im Forum Asuro
    Antworten: 17
    Letzter Beitrag: 08.01.2008, 17:15
  5. Timer2 overflow Interrupt will nicht
    Von BomberD im Forum C - Programmierung (GCC u.a.)
    Antworten: 10
    Letzter Beitrag: 30.01.2006, 16:37

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress