Timer T2 beim 8051.h (89S52) Funktion

OP #1233839
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
#1233939
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
OP #1234016
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 :)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren