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.