Forum: Mikrocontroller und Digitale Elektronik PWM mit 8051 (Timer2)


von Mike (Gast)


Lesenswert?

Hallo,

ich habe habe hier einen Infineon C515 Controller und wollte den mit
seinem Timer 2 eine PWM erzeugen lassen. Leider klappt das nicht. An
dem Ausgangspin tut sich überhaupt nichts.

Hier der Codeausschnitt zum initialisieren des Timers
1
   T2I1 = 1;    //  Eingangfrequenz = foscl / 12 und einschalten
2
   T2I0 = 0;
3
   T2PS = 0;
4
5
   T2R1 = 1;    //  Automatic reload
6
   T2R0 = 0;
7
8
   CRCH = 0xF;    //  reloadwert
9
   CRCL = 0;   
10
11
   CCEN = 0x08;    //  Compare enable
12
13
   CCH1 = 0x01;    //   CompareWert
14
   CCL1 = 0x00;

Meiner Meinung nach müßte der Pin jetzt toggeln, tut er aber nicht.
Habe ich vielleicht ein Register vergessen? Oder muß ich noch etwas
anderes beachten?

MfG Mike

von Mike (Gast)


Lesenswert?

So, bin noch ein wenig weiter:

Es muß natürlich
   T2I1 = 0;    //  Eingangfrequenz = foscl / 12 und einschalten
   T2I0 = 1;
heißen, wenn ich foscl verwenden will.
Aber leider sehe ic himmer noch keine Änderungen am PortPin.

von Peter D. (peda)


Lesenswert?

Wenn Reloadwert das bedeutet, wie es heißt, dann wird nach 0xFFFF mit
0x0F00 weitergezählt.

Und somit ist ein Compare mit 0x0100 immer false.


Peter

von Peter D. (peda)


Lesenswert?

P.S.:

Es gibt prinzipiell 2 Möglichkeiten der Zählerverkürzung:

- Reload on Overflow (8051)

- Clear on Compare (AVR)


Peter

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.