- 12V Akku mit 280 Ah bauen         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 14 von 14

Thema: mega128-Fragen

  1. #11
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.11.2004
    Ort
    Hard, Vorarlberg
    Beiträge
    155
    Anzeige

    Powerstation Test
    Zu Deinen Fragen mit den Timer-Interrupts:

    Falls während eines Interrupts ein weiterer auftritt, wird dieser nach Beendigung des gerade laufenden ausgeführt. Daher sollten die Interrupt-Routinen auch so kurz wie möglich gehalten werden. Mit dem Aufruf einer Interrupt-Routine werden die Interrupt-Aufrufe gesperrt und mit Beendigung (ASM-Befehl RETI) wieder freigegeben. Dann kann ein anstehender weiterer Interrupt ausgeführt werden.
    Es wäre zwar möglich, in einer Interrupt-Routine die Interrupts explicit wieder freizugeben, diese würde aber zu verschachtelten Interrupt-Aufrufen führen mit einem entsprechenden (nicht) abschätzbaren Stack-Bedarf und ist daher nicht ratsam.
    Viele Grüße
    Josef
    -------------------------------------------------------------------------------------
    DOS-File System für BASCOM-AVR auf http://members.aon.at/voegel

  2. #12
    Benutzer Stammmitglied
    Registriert seit
    16.01.2005
    Beiträge
    42
    so hab ich mir das schon gedacht.
    Aber der RTC läuft doch auch über Interrupts (timer0), wenn ich mich nicht irre.
    Wenn da noch andere Interrupts im Spiel sind, kann es doch schnell mal zu Ungenauigkeiten der Uhr kommen.
    Auch wenn das ja nur minimale Verzögerungen sind, die addieren sich doch irgendwann.

  3. #13
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    09.11.2004
    Ort
    Hard, Vorarlberg
    Beiträge
    155
    Es gibt dann eine Ungenauigkeit, wenn ein weiterer Interrupt von der gleichen Quelle auftritt, bevor ein vorhergehender in der Interrupt-Routine abgearbeitet wurde.
    Die Auslösung des Interrupts und die Abarbeitung können in dem Fall der RTC getrennt betrachtet werden. Der Timer löst zum Beispiel jede Sekunde einen Interrupt aus und ist nur von der Quarzgenauigkeit abhängig. Die Auslösung des nächsten Interrupts ist von einer allfällig durchgeführten Interrupt-Routine unabhängig. Die Ungenauigkeit ist nur von der Zeit abhängig, welche vergeht, bis die Interrupt-Routine durchgeführt wird und die entsprechenden Zeit-Variablen berichtigt werden. Also bei einem gut programmierten System von einigen µSec bis mSec. In jedem Fall muss natürlich die Interrupt-Routine innerhalb einer Sekunde zur Ausführung kommen, sonst verfälscht sich die RTC-Zeit.
    Viele Grüße
    Josef
    -------------------------------------------------------------------------------------
    DOS-File System für BASCOM-AVR auf http://members.aon.at/voegel

  4. #14
    Benutzer Stammmitglied
    Registriert seit
    16.01.2005
    Beiträge
    42
    ah, ich glaub ich verstehe.
    Wenn der Überlauf des RTC-Timers stattfindet wird das Interruptregister gesetzt, und der läuft ja dann weiter weiter. Un dann hat der Prozessor ja knapp ne Sekunde zeit, um die entsprechende Routine auszuführen.
    Das sieht dann aber anders aus, wenn man den Timer in der Interruptroutine auf einen bestimmten Wert setzten will. Da wirds dann schon Zeitkritischer.
    Hab ich das so richtig verstanden?

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress