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
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.