Forum: Mikrocontroller und Digitale Elektronik PIC PWM Config


von Tobias D. (der-tobi)


Lesenswert?

Hallo!

Um es kurz zu machen, der PWM funktioniert nicht so wie ich es mir 
gedacht habe. Ich hoffe, jemand kann kurz meine Config überfliegen, und 
mir sagen, ob ichs richtig gemacht hab:
1
PR2=0xFF;    // Wann soll Timer2 auslösen?
2
  
3
CCPR1L=0x00;  // Low Byte des 10 Bit-PWMs
4
CCP1CON<5>=0;  // High Bit1
5
CCP1CON<4>=0;  // High Bit0
6
  
7
TRISC=0;    // RC2 out
8
  
9
T2CON<1>=1;    // Timer2 Vorteiler = 16
10
T2CON<2>=1;    // Timer2 an
11
  
12
CCP1CON=0x2F;  // PWM Mode an

Nach der aktuellen Einstellung müsste die LED an RC1 (vom 18F2550) doch 
eigentlich aus sein.
Ist sie aber nicht, sie leuchtet dauerhaft (hab schon alle möglichen 
Kombinationen probiert). Könnte mir jemand sagen, in welcher Reihenfolge 
hier Low- und High Bits kommen?

mfg, Tobi

von Bernd R. (Firma: Promaxx.net) (bigwumpus)


Lesenswert?

Tobias Däullary wrote:

> PR2=0xFF;    // Wann soll Timer2 auslösen?
Oberste 8 Bit des kompletten Cycles

> CCPR1L=0x00;  // Low Byte des 10 Bit-PWMs
Oberste 8 Bit des On-Cycles (10-2)

> CCP1CON<5>=0;  // High Bit1
Bit 1 des On-Cycle-Wertes

> CCP1CON<4>=0;  // High Bit0
Bit 1 des On-Cycle-Wertes

> TRISC=0;    // RC2 out
Der ganze PortC wird Ausgang

> T2CON<1>=1;    // Timer2 Vorteiler = 16
richtig

> T2CON<2>=1;    // Timer2 an
richtig

> CCP1CON=0x2F;  // PWM Mode an
ja, aber die vorhin gesetzten 2 untersten Bit des On-Cycle-Wertes werden 
wieder überschrieben.


> Nach der aktuellen Einstellung müsste die LED an RC1 (vom 18F2550) doch
> eigentlich aus sein.
(fast aus - On-Cycle ist 2, der komplette Cycle ist 1023.
Die LED ist vom PortC.1 über einen Widerstand gegen Masse geschaltet ?

> Ist sie aber nicht, sie leuchtet dauerhaft (hab schon alle möglichen
> Kombinationen probiert). Könnte mir jemand sagen, in welcher Reihenfolge
> hier Low- und High Bits kommen?
abwechselnd, mal 0 dann 1 und dann wieder von vorne ... ;-)

von Tobias D. (der-tobi)


Lesenswert?

"Die LED ist vom PortC.1 über einen Widerstand gegen Masse geschaltet ?"

Ja.

"ja, aber die vorhin gesetzten 2 untersten Bit des On-Cycle-Wertes 
werden
wieder überschrieben."

Verdammt, so kann man sich vertun ^^


Also sieht es folgendermaßen aus?
          ************************
CCPR1L:     7 6 5 4 3 2 1 0 - - 
CCP1CON:    - - - - - - - - 5 4 
          ************************
PWM 10 Bit:  9 8 7 6 5 4 3 2 1 0

von Bernd R. (Firma: Promaxx.net) (bigwumpus)


Lesenswert?

Ja, so werden die 10 Bits zusammengepuzzlet...

von Tobias D. (der-tobi)


Lesenswert?

Oh mein Gott! 2MHz- Resonator & HS ^^ das passt ned gut zusammen!

Aber vielen Dank für deine Hilfe!

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.