Hallo,
ich versuche gerade für ein Projekt an der Uni eine PWM mit dem
AT89LP2052/4052 zu realisieren. Eigentlich ganz einfach dachte ich.
Ich habe dazu unten mal meinen Code eingefügt. Diese Funktionen werden
dann von einem anderen Programm aufgerufen. Mein erstes Problem ist, das
ich das ganze noch nicht auf dem µC testen konnte, da wir die leider
noch nicht haben. Also habe ich das ganze mit Keil µVision 3 simuliert.
Funktioniert in der Theorie auch alles so, wie es sollte (der Timer
zählt und lädt auch den Reload wert wieder rein). Das einzige was ich
nicht sehe, ist das sich im Portregister des Port 3 der Wert für P3.4
(der PWM ausgang) ändert. Habe auch einen anderen Code im Internet
gefunden, wo das eigentlich gemacht wird, wie ich es auch mache. Auch
beim dem Code sehe ich nicht wie der Pin seinen Zustand ändert.
Wo liegt nun das Problem? An meinem Code? Oder zeigt mir das µVision
einfach nicht den Zustandswechsel an?
pwm_init:
mov P1M0,#00H ;alle ports quasi bidirektional, 8051 kompatibel
mov P1M1,#00H
mov P3M0,#00H
mov P3M1,#00H
clr TR0 ;Timer 0 anhalten
orl TMOD,#01H ;Timer0, Mode 1
orl TCONB,#40H ;Timer 0 PWM an P3.4
ret
pwm_start:
SETB TR0 ;Timer 0 run bit 1
ret
pwm_laden:
mov TL0,#0FFH ;T0 Prescaler
mov RL0,#0FFH ;Reloadwert
mov TH0,#00H ;T0 Startwert
mov RH0,#0AAH ;Pulsweite
ret
Danke für die schnelle Antwort, hab das setb p3.4 vor dem ret in meiner pwm_init eingefügt. Gleiches Verhalten wie vorher. Im Port Register ändert sich nix.
Der LP4052 ist ja noch sehr neu. Ich vermute mal, der Keil Simulator kennt daher die PWM noch nicht. Peter
Ich habe mir gestern die aktuelle Version von der Keil Webseite runtergeladen. Als Device war er schon integriert, da konnt ich beide Versionen, die 2052 und die 4052 anwählen. Kann das möglich sein, das der dann noch nicht vollständig integriert ist? Bin echt langsam am verzweifeln hier.
Das verzweifeln hat ja nix mit dem Alter des Forenbeitrags zu tun. Aber ich hab gestern den halben Tag daran gesessen. Sind ja nur ein paar Zeilen Code. Und genau die Zeilen Code die ich verwende, sind im Prinzip die Zeilen die schon woanders verwendet wurden. Und wenn dann nicht das passiert, was passieren soll, und man quasi schon alle Möglichkeiten durchgegangen ist, ist ja klar das man irgendwann nen Harry kriegt. Wenn nur schon die Bestellung da wäre, da könnte man auf dem uC testen, ob das Keil spinnt :-/. Zumal fahr ich Sonnabend früh in Skiurlaub.
Hallo Jonas, auf www.minimikro.de gibt es bei den Dokumenten hoffentlich reichlich Informationen zu Ihren Fragen. Ich habe dort für PWM mit AT89LP2052/4052 auch ein paar Assembler Beispiele. Mit den besten Grüßen J.Hulzebosch
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.