Forum: Mikrocontroller und Digitale Elektronik Timer T2 beim 8051.h (89S52) Funktion


von Christopher B. (raven16)


Lesenswert?

Hallo zusammen,

wollte mal nachfragen, ob mir jemand die Funktion dieses 16 Bit Timers 
in Stichpunkten erklären kann, weil ich diesen in der Schule erklären 
muss.

INIT:  MOV R4, #((65536-200)/256)  ;MSB Impulsvorgabe
  MOV R5, #((65536-200)%256)  ;LSB  Impulsvorgabe
  MOV R6, #((65536-10040)/256)  ;MSB Pausenvorgabe
  MOV R7, #((65536-10040)%256)  ;LSB  Pausenvorgabe
  MOV TH2, R4       ;es beginnt mit einem Impuls
  MOV TL2, R5
  MOV RCAP2H, R6            ;dann folgt eine Pause
  MOV RCAP2L, R7
  SETB ET2      ;Freigabe T2-Interrupt
  SETB EA              ;allgemeine Interrupt-Freigabe
  SETB TR2      ;T2 starten

Der Timer wurde so intialisiert, doch ich verstehe von der Funktion nur 
Bahnhof.

MSB = Most Significant Bit?
LSB = Least Significant Bit?

Haben das verwendet, um ein PWM-Signal mit Hilfe von DIP-Schaltern zu 
erzeugen.

Wozu dienen RCAP2L und RCAP2H?

Hoffe, Ihr könnt mir ein bisschen weiterhelfen.

mfg raven16

PS: Schaltbild des Timers ist im Anhang oder unter der Adresse: 
http://raven16.ra.funpic.de/Peripherie-des-89S52.jpg

von Peter D. (peda)


Lesenswert?

Christopher B. wrote:
> MSB = Most Significant Bit?
> LSB = Least Significant Bit?

Fast, MSB = Most Significant Byte.
Allerdings ist diese Schreibweise recht unüblich, der Assembler hat 
dafür die Macros high und low, d.h. man schreibt besser:
1
RCAP2_VAL equ 10040
2
  mov RCAP2H, #high(RAP2_VAL)
3
  mov RCAP2L, #low(RAP2_VAL)

Der Umweg über Register ist unnötig, SFRs lassen sich direkt laden.

Mit dem Wert in TH2,TL2 läuft der Timer los und bei Erreichen von 
RCAP2H,RCAP2L wird z.B. ein Interrupt ausgelöst.

Wie T2 genau funktioniert, steht im Atmel Datenblatt bzw. 
Hardwaremanual.

http://www.atmel.com/dyn/resources/prod_documents/doc4316.pdf


Peter

von Christopher B. (raven16)


Lesenswert?

Joar, danke ;-)

Das Datenblatt erklärt schon ein bisschen mehr.
Mir geht es einzig und allein darum erklären zu können, wie dieser Timer 
vom Prinzip her funktioniert.

Liege ich da richtig zu sagen, dass der Timer 2 Modis besitzt. Wenn TF2 
auf 1 gesetzt wurde mit SETB, dann wird wenn der Timer ein Signal 
sendet, ein Interrupt ausgelöst?
RCAP2H und RCAP2L sind doch Register und in diesem Register stehen Werte 
und diese Werte werden mit dem Timer verglichen und wenn der Timer den 
Wert des Registers erreicht hat, dann löst der Timer sein Ereignis aus 
und schickt ein Signal weiter?

Was ich noch nicht ganz verstanden habe ist, wofür T2H und T2L sind?
Warum wird hier zwischen High und Low unterschieden?

Ich versteh das ganze Prinzip nicht wirklich ;-)
Und wenn ich das nicht bis morgen erklären kann wie das Ding so ungefähr 
funktioniert, dann bekomme ich statt einer 4 eine 5 auf dem 
Abschlusszeugnis in dem Fach :(

Ich muss morgen eine Präsentation über das PWM-Signal halten mit 
Powerpoint und ich wollte halt den Timer ein bisschen Erklären können, 
womit das PWM-Signal erzeugt werden kann... Haben das Signal schon mal 
erzeugt, aber das ist mittlerweile wieder 1 Jahr her, dass wir das 
gemacht haben... Das Programm und die grobe Erklärung davon besitze ich 
zum Glück noch :)

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.