- 3D-Druck Einstieg und Tipps         
Ergebnis 1 bis 10 von 12

Thema: Probleme mit IF-Abfrage / Timer

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #3
    Benutzer Stammmitglied
    Registriert seit
    17.12.2005
    Ort
    Untermain
    Beiträge
    58
    Du hast offenbar etwas übersehen. Die von dir erwähnte abfrage TRIFTT dummerweise zu, wie du dem Screenshot entnehmen kannst.
    Dass
    Code:
    if (g_msec < 1000) {}
    nach
    Code:
    if (g_msec > 999) {}
    nicht zutreffen DARF, ist mir schon auch klar...
    die Zeile entsprang nur meiner verzweiflung; und da die inkrementierung leider mehr als einmal aufgeführt wurde, versuche ich jetzt herauszufinden, wie es dazu kommen kann...
    vielleicht flackert ja ein Bit im RAM, aber ich halte das für ehr unwahrscheinlich...

    nachdem ich den ganzen µC jetzt noch einmal komplett gelöscht und auch die Fuses einmal (bis auf SPIEN) nicht gesetzt programmiert habe, bevor ich wieder zurück gewechselt habe, scheint der Fehler nicht mehr sehr häufig aufzutreten...
    ich habe die "debug-Prüfung" etwas angepasst:
    Code:
            if (g_msec < 1000){
            g_fail++; // volatile, int16
            }
    g_fail wird jetzt außerdem mit ausgegeben, die entsprechende Zeile (in main.c) ist:
    Code:
    sprintf(buffer, "\nT: %02d:%02d:%02d.%04d   %04d\n", g_h, g_min, g_sec, g_msec, g_fail);
    der Wert ist bei Laufzeit 00:01:04 (hh, mm, ss) des Programms auf 1 gesprungen (ja, wird immer mit 0 initialisiert) und mehr als eine Stunde so geblieben... scheint also ein (mittlerweile) ehr seltenes Phänomen zu sein... (das ist so auch reproduzierbar, er macht das immer wieder zu dem Zeitpunkt und dann geht es zumindest bisher ohne diesen Fehler weiter, bis ich neustarte)

    Der Code der Timerroutine ist übrigens im Anhang dabei, ist aber auch nix weltbewegendes:
    Code:
    ISR(TIMER0_COMP_vect)
    {
       // hier wird der msec-zähler gesetzt. Die übrigen
       // Programmteile müssen diese Aenderung "sehen":
       // volatile -> aktuellen Wert immer in den Speicher schreiben
       g_msec++;
    }
    zu früh gefreut:
    00:01:43.-232 0003
    Geändert von sammler (23.04.2011 um 17:56 Uhr)

Ähnliche Themen

  1. interne pull up widerstand/ probleme mit der tasten abfrage
    Von Asuro91 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 4
    Letzter Beitrag: 06.06.2010, 14:36
  2. problem mit button-abfrage im timer (c#)
    Von Roboman93 im Forum Open Source Software Projekte
    Antworten: 4
    Letzter Beitrag: 29.12.2008, 17:40
  3. Probleme mit Timer und ATMega 32
    Von steffen21m im Forum C - Programmierung (GCC u.a.)
    Antworten: 4
    Letzter Beitrag: 07.01.2008, 19:17
  4. Radencoder- und Timer-Probleme
    Von Speedking im Forum C - Programmierung (GCC u.a.)
    Antworten: 0
    Letzter Beitrag: 26.07.2006, 22:18
  5. Anfängerfrage: Timer-Abfrage beim PIC 10F206???
    Von JayCool im Forum PIC Controller
    Antworten: 2
    Letzter Beitrag: 07.06.2006, 10:23

Berechtigungen

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

fchao-Sinus-Wechselrichter AliExpress