Forum: Mikrocontroller und Digitale Elektronik PWM mit AT89LP2052 bzw. AT89LP4052


von Jonas (Gast)


Lesenswert?

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

von ab-cd (Gast)


Lesenswert?

mach mal setb p3.4 und versuche nuochmal

von Jonas (Gast)


Lesenswert?

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.

von Peter D. (peda)


Lesenswert?

Der LP4052 ist ja noch sehr neu.

Ich vermute mal, der Keil Simulator kennt daher die PWM noch nicht.


Peter

von Jonas (Gast)


Lesenswert?

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.

von ab-cd (Gast)


Lesenswert?

jung und schon so ungeduldig ?

von Jonas (Gast)


Lesenswert?

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.

von Jürgen Hulzebosch (Gast)


Lesenswert?

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