80c537+Timer2/Gated Mode = Großes Problem

Gast #89447
Lesenswert?
• ▲
▼
Hallo zusammen,

ich komm mit meinem 80c537A und diesem blöden Gated Timer Mode bei
Timer 2 nicht klar. Ich möchte die länge eines Impulses an Pin 1.7
messen. Dazu setze ich den IRQ auf die oberste Ebene.
Timer0 bringt das Messen alle 33ms zum Aufruf. Starten und stoppen
scheint zu funktionieren. Trotz allem bekomme ich nur den Wert 0000h
zurück. Ich habe Auszüge aus meinem Code mal im Anhang reingesetzt.
Vielleicht steigt ja jemand bei den Schnippseln durch.

Vielen Dank für die Mühen.

Gruß Binnesmann
Angehängte Dateien:
#89449
Lesenswert?
• ▲
▼
Ich kenne den 537 nicht, aber alle normalen 8052er haben standardmäßig
gar keinen Gate Mode für T2.
Den haben nur T0 und T1, nimm doch diese.

Dein Programm enthält ja gar keinen Interrupthandler, läuft also sofort
in den Wald, da Du ja mit "MOV T2CON,#10000011b" den Interrupt
auslöst, ohne das ein Zählimpuls an T2 anliegt.

Unbenutzte Ports sollte man auf 1 belassen, damit sie nicht gegen dort
angeschlossene Ausgänge kämpfen.


Peter
Gast #89450
Lesenswert?
• ▲
▼
Sorry, das ist natürlich nicht der ganze Code. Einer IRQ Handle gibt's
natürlich. Das was ich gepostet habe ist lediglich der Teil, in dem ich
den Timer behandel. Hätte ich besser noch ausführlicher dokumentiert
und beschrieben.

Mit      MOV   P1,#10000000b setze ich den Eingang auf 1.

Später dann
             MOV   T2CON,#10000000b
;                         ||||||||_ T2I0 Timer 2 Inputselect 0
;                         |||||||__ T2I1 Timer 2 Inputselect 1
;                         ||||||___ T2CM Timer 2 Compare Mode Bit
;                         |||||____ T2R0 Timer 2 Reload Mode Selection
0
;                         ||||_____ T2R1 Timer 2 Reload Mode Selection
1
;                         |||______ I2FR
;                         ||_______ I3FR
;                         |________ T2PS Timer 2 Prescaler Bit

Wählt nur die Prescaler.
             MOV   T2CON,#10000011b
Schaltet den Timer in Gated Mode.

             MOV   IP0,#00000000b          ;IRQ Priorität
             MOV   IP1,#00100000b          ;IRQ Priorität

Setzt die Prioritäten.

Ich möchte ja auch nur 1 Impuls messen. Deshalb schaltet mein IRQ
Handle den Timer direkt aus. Reload gibt es nicht.

Das ganze habe ich in 3 Büchern beschrieben, aber warum legen die alle
viel mehr Wert auf Capture/Compare als auf diese blöde Betriebsart die
ich aber brauche? Gated Timer ist jeweils ein Abschnitt mit 5 Zeilen,
in dem nur der Begriff "Gated Timer" erklärt wird. Nicht wie ich Ihn
einrichte und verwende. Werde das zur Not mal mit Timer 1 probieren.
Das muß ja dann laufen.

Gruß Binnesmann
#89451
Lesenswert?
• ▲
▼
Sieht so aus, als ob der T2 des 537 wirklich völlig anders ist, als der
standard T2. T2CON.7 ist nämlich normaler Weise das Overflow-Bit.
Der 537 scheint also ein echter Exot zu sein

Aber ich benutze schon lange keine 8051-er mehr ohne internen Flash und
Bootloader, wäre mir viel zu unbequem.

Sorry, daß ich deshalb nicht helfen kann.


Peter

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.