Forum: Mikrocontroller und Digitale Elektronik Timer läuft nicht,warum?


von Cristian Grigoruta (Gast)


Angehängte Dateien:

Lesenswert?

Hallo.

Ich habe mal ein kleines Progi zum testen vom Timer0 geschrieben jedoch
läuft es nciht.Also ich sehe die Led nicht blinken.

Kann mir jemand sagen was ich falsch mache?  Bitte!
Mfg Cri :)

von Cristian Grigoruta (Gast)


Lesenswert?

hmm...komisch.
Habe zufälli bemerkt das er doch blink doch in einem Zeitabstand von
ca.30 sek.!
Habe mal ms nur bis 10 zählen lassen und dabei blinkt er ungefähr in
einem Zeitabstand von 1 sek.

Was versteh ich denn da nicht?warum muss der nur bis 10 und nicht bis
1000 zählen?

von Stefan (Gast)


Lesenswert?

Was bedeuten diese Zeilen:
1
    EA   =   1;
2
  ET0  =   1;
3
        TMOD =   0x02;
4
  TL0  =   0x06;
5
  TH0  =   0x06;
6
  TR0  =   1;

von Cristian Grigoruta (Gast)


Lesenswert?

EA = Allg. Inter. Freigane
ET0= Int.Timer0 Freigabe
TMOD = 0x02;  => Timer0 auf 8 Bit Auto Reload gestellt
TL0=0x06; => Timer 0 mit 6 vorgeladen damit er 250µs zählt
TH0=0x06; => das selbe
TR0 => Timer 0 starten

von Cristian Grigoruta (Gast)


Lesenswert?

Hab den Fehler schon gefunden! :)

Ich habe count falsch platziert.
RICHTIG:
.
.
.
void T0_Int(void) interrupt 1
{
  count++;

  if(count == 4) // 1msek.
  {
    ms++;
    count = 0; // <- JETZT IST ES RICHTIG

    if(ms==1000) // 1sek.
                {
      Led = ~Led; // Led Ein/Aus
      ms=0;
    }

  }
}
.
.
.

Der Timer zählt bis 1ms dann wird ms inkrementiert und count auf 0
gesetzt. Danach addiert der Timer wieder 1ms bis ms =1000ms ist.Also 1
sek.

Danke Trotzdem!

Mfg Cri

von Cristian Grigoruta (Gast)


Lesenswert?

hmm..."trotzdem" muss doch klein geschrieben werden :)

von Stefan (Gast)


Lesenswert?

Oh da warst du schneller. Ich war noch bei der Kontrolle der sechs
Timer-Init-Zeilen. Die sind richtig ;-)

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.