Timer 2 mit AT89C51ED2

Gast #552607
Lesenswert?
• ▲
▼
Hallo!

Hab da ein Problem mit dem Timer 2 meines AT89C51ED2.
Woran es liegt, weiß ich nicht genau, aber mein Programm sieht so aus:

>void main (void)
>{
>        init();

>  while(1)
>  {
>    if(tf2==1)  //Timer-Flag
>    {
>      tf2=0;
>      zaehl++;
>      if(zaehl==6000)
>      {
>        zaehl=0;
>        laufzeit++;
>      }
>    }
>
>    if(laufzeit==1)
>    {
>      laufzeit=0;
>                          led=1;
>
>    }
>}

inititalieren tu ich das ganze folgendermaßen:

>T2CON=0x00;
>T2MOD=0x00;

>TH2 = 0xDC;      //Timer auf 10ms vorsetzen
>TL2 = 0x00;
>TR2=1;
>EA   = 1;

und der interrupt schaut so aus:

>void t2_ISR (void) interrupt 5
>{

>        TH2 = 0xDC;  //Timer auf 10ms vorsetzen
>  TL2 = 0x00;

>  tf2=1;
>  led2=0;
>}

Wo liegt der Fehler? Hab ich Register falsch gesetzt? Ach ja, der Timer 
macht gar nix.

Wäre für Tipps dankbar.

lg Peter
Gast #553320
Lesenswert?
• ▲
▼
@Peter

Ja, danke, bin ich dann auch noch draufgekommen.

@all

Aber ganz richtig funktioniert der Timer trotzdem noch nicht, er ist zu 
schnell.

Hab ich ihn falsch vorgesetzt?

Im Datenblatt steht Fosc/12.

Also habe ich folgendermaßen gerechnet:

tcycl = 12/fosc = 12/11.0592 = 1.085[µs]

t=10[ms]...auf 10[ms] vorsetzen

#=10[ms]/1.085[µs]=9216

65536-9216=56320

TH=56320/256=220=0xDC
TL=0=0x00

Normal sollte es ja so stimmen, oder?

Wo hab ich einen Fehler gemacht?

Bin wie immer für jeden Tip dankbar.

lg Peter
Gast #554360
Lesenswert?
• ▲
▼
Ich glaub du mußt die Vorladewerte in die Register RCAP2H und RCAP2L 
schreiben. Der läuft im AutoReloadMode und lädt diese Werte in die TH 
und TL Register, direkt geht das wohl nicht.
Funktioniert das so?

Gruss
Thomas

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.