Forum: Mikrocontroller und Digitale Elektronik 1/1023 duty cycle noch zu hell


von Jens (Gast)


Lesenswert?

Hallo,

ich habe mit dem PIC16F716 eine PWM einprogrammiert aufgebaut, der eine 
7-Segment-Anzeige dimmt.

Ich betreibe den PIC mit 4.194304MHz, und die interne 10Bit PWM ist auf 
die höchste Auflösung eingestellt (Obergrenze Timer2 = 255).

Leider ist auf der untersten Stufe
1
CCPR1L = 0; DC1B0 = 1; DC1B1 = 0;
was einem Wert von 1 entspricht bei einem Maximalwert von 1023 die 
Anzeige immer noch zu hell um in einem dunklen Raum verwendet zu werden 
(Wecker).

Was kann ich tun? Hoier noch mein gesamter Initialisierungs-Code für die 
PWM des PIC16F716:
1
  // *****
2
  // PWM settings
3
4
  // enable PWM mode
5
  CCP1M0 = 0;
6
  CCP1M1 = 0;
7
  CCP1M2 = 1;
8
  CCP1M3 = 1;
9
10
  // only RB3 as an output, all other pins as digital IOs
11
  P1M0 = 0;
12
  P1M1 = 0;
13
  
14
  // PWM duty cycle
15
16
  // (two LSB of 10 Bit value)
17
  DC1B0 = 0;
18
  DC1B1 = 0;
19
20
  // (eight MSB of 10 Bit value)
21
  CCPR1L = 0;
22
23
  // upper limit of Timer2
24
  PR2 = 0xff;
25
26
  // set prescaler of Timer2 to 1:1
27
  T2CKPS0 = 0;
28
  T2CKPS1 = 0;
29
30
  // turn it on
31
  TMR2ON = 1;

Gruß
Jens

von Volker S. (volkerschulz)


Lesenswert?

Jens schrieb:
> [...]>
> Was kann ich tun? [...]

Warum musst Du das in Software loesen? Wuerden es nicht groessere 
Vorwiderstaende tun? Multiplext Du die Anzeige? Als letztes 
Software-Mittel waere da noch eine selbst generierte PWM...

Volker

von Martin (Gast)


Lesenswert?

Größere Vorwiderstände.

von Knut (Gast)


Lesenswert?

Hat der PIC keinen 16Bit Timer? Macht ja Sinn das über PWM zu machen, so 
kann man den Wecker dunkel schalten und zur Weckzeit volle Pulle hell 
damit man wach wird.


Knut

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Jens schrieb:
> Leider ist auf der untersten StufeCCPR1L = 0; DC1B0 = 1; DC1B1 = 0;was einem 
Wert von 1 entspricht bei einem Maximalwert von 1023 die
> Anzeige immer noch zu hell um in einem dunklen Raum verwendet zu werden
> (Wecker).
Hast du mal nachgemessen, ob du auch tatsächlich 1:1023 multiplext? 
Oder evtl. dein Schalttransistor langsam abschaltet...

von Jens (Gast)


Lesenswert?

Hallo, danke für eure Antworten. Die DC ist schon so OK, schon oft 
angewendet. Ich würde eben die größeren Vorwiderstände gerne vermeiden, 
weil ich das ganze schon aufgebaut habe, dem Beschenkten die LEDs aber 
etwas zu hell in der niedrigsten Stufe sind. Ich würde ungerne die 
Platine neu aufbauen.. Daher dachte ich, es gibt vielleicht einen netten 
Trick oder so.

Gruß
Jens

von ... (Gast)


Lesenswert?

Jens schrieb:
> Daher dachte ich, es gibt vielleicht einen netten
> Trick oder so.

Wenn die PWM schnell genug ist, kannst du ja noch eine langsame 
Software-PWM draufsetzen, indem du einen Zähler mitlaufen läßt und nur 
ab und zu einen der PWM-Pulse zur Anzeige durchläßt

von Christoph S. (mixer) Benutzerseite


Lesenswert?

Wenn du es ganz einfach willst kannst du ja auch eine dunkle Folie über 
die Anzeige kleben, das dimmt auch!

Gruss Christoph

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.