Forum: Mikrocontroller und Digitale Elektronik 80c537+Timer2/Gated Mode = Großes Problem


von Binnesmann (Gast)


Angehängte Dateien:

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

von Jan Schunke (Gast)


Angehängte Dateien:

Lesenswert?

Servus,

sehe zwar bei den Codeschnipseln nicht durch, habe aber ein
Funktionierendes Prog. für den C166 vielleicht hilft das ja.

Gruß Jan

von Peter D. (peda)


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

von Binnesmann (Gast)


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

von Peter D. (peda)


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

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.